数据类型

1. 六种数据类型

JavaScript包含六种数据类型:基本类型number、string、boolean、null、undefined和对象类型Object。其中,对象类型包含方法function、数组array和日期Date等。

2. 隐式转换

  • 使用+时表示连接,使用-时表示数字运算,可以巧用在number和string之间转换;
  • 类型相同比较相当于恒等===;
  • 类型不同尝试类型转换再比较,我称作为向下转型:
    • null == undefined
    • number == string,后者会自动转型为number
    • boolean会转型为number
    • object会转型为number或者string

3. 包装对象

当一个基本类型当对象使用时,只是产生了一个临时对象,将基本类型包装为一个对象,它是没有对象的属性的,使用完一次对象即销毁。

4. 类型检测

  • typeof检测:

    • typeof null; //"object"
    • 适合基本类型及function检测,null检测为object
  • instanceof检测:
    • [1,2] instanceof Array; //true
    • 适合自定义对象和原生对象,在不同iframe和Window间检测失效
  • Object.prototype.toString检测:
    • Object.prototype.toString.apply(123); //"[object Number]"
    • 适合基本类型和内置对象,null检测为null,undefined检测为undefined

表达式和运算符

  • 常量、变量、关键字叫原始表达式。

    • 原始表达式使用运算符连接叫做复杂表达式;
    • 数组表达式可以表示数组的初始化,花括号表达式可以表示初始化对象;
    • 函数表达式
    • 属性访问表达式,如Object o = new Object();o = {x:1};o.x; //1
    • 对象创建表达式
    • 调用表达式
  • 运算符分为一元、二元、三元运算符。
    • 其他常用
    • 逗号运算符
    • delete运算符
    • this
    • in

语句

  • JavaScript没有块级作用域(block使用{})
  • 函数内有函数作用域,函数内var a= b= 1;,b是全局变量,a是局部变量
  • try-catch语句抛异常的顺序问题:❤️:从内到外
  • 函数和函数表达式
  • for--in遍历是不按顺序的
  • with遍历,用于深层次遍历,但是不推荐了

深入浅出JavaScript(一)的更多相关文章

  1. 深入浅出 JavaScript 对象 v0.5

    JavaScript 没有类的概念,因此它的对象与基于类的语言中的对象有所不同.笔者主要参考<JS 高级程序设计>.<JS 权威指南>和<JS 精粹> 本文由浅入深 ...

  2. 深入浅出 JavaScript 关键词 -- this

    深入浅出 JavaScript 关键词 -- this 要说 JavaScript 这门语言最容易让人困惑的知识点,this 关键词肯定算一个.JavaScript 语言面世多年,一直在进化完善,现在 ...

  3. 深入浅出Javascript的正则表达式

    深入浅出的javascript的正则表达式学习教程 阅读目录 了解正则表达式的方法 了解正则中的普通字符 了解正则中的方括号[]的含义 理解javascript中的元字符 RegExp特殊字符中的需要 ...

  4. 深入浅出JavaScript之原型链&继承

    Javascript语言的继承机制,它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instanc ...

  5. 深入浅出JavaScript之闭包(Closure)

    闭包(closure)是掌握Javascript从人门到深入一个非常重要的门槛,它是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.下面写下我的学习笔记~ 闭包-无处不 ...

  6. 深入浅出JavaScript之this

    JavaScript中的this比较灵活,根据在不同环境下,或者同一个函数在不同方式调用下,this都有可能是不同的.但是有一个总的原则,那就是this指的是,调用函数的那个对象. 下面是我的学习笔记 ...

  7. 【转】深入浅出JavaScript之this

    JavaScript中的this比较灵活,根据在不同环境下,或者同一个函数在不同方式调用下,this都有可能是不同的.但是有一个总的原则,那就是this指的是,调用函数的那个对象. 下面是我的学习笔记 ...

  8. 【转】深入浅出JavaScript之闭包(Closure)

    闭包(closure)是掌握Javascript从人门到深入一个非常重要的门槛,它是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.下面写下我的学习笔记~ 闭包-无处不 ...

  9. 深入浅出 JavaScript 中的 this

    在 Java 等面向对象的语言中,this 关键字的含义是明确且具体的,即指代当前对象.一般在编译期确定下来,或称为编译期绑定.而在 JavaScript 中,this 是动态绑定,或称为运行期绑定的 ...

  10. 【转】深入浅出 JavaScript 中的 this

    Java 等面向对象的语言中,this 关键字的含义是明确且具体的,即指代当前对象.一般在编译期确定下来,或称为编译期绑定.而在 JavaScript 中,this 是动态绑定,或称为运行期绑定的,这 ...

随机推荐

  1. Azure Messaging-ServiceBus Messaging消息队列技术系列1-基本概念和架构

    前段时间研究了Window Azure ServiceBus Messaging消息队列技术,搞了很多技术研究和代码验证,最近准备总结一下,分享给大家. 首先,Windows Azure提供了两种类型 ...

  2. multiprocessing 源码解析 更新中......

    一.参考链接 1.源码包下载·链接:   https://pypi.org/search/?q=multiprocessing+ 2.源码包 链接:https://pan.baidu.com/s/1j ...

  3. 【Linux学习十】负载均衡带来tomcat的session不一致问题

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 tomcat7 jdk7 session不一致是指web服务器(tom ...

  4. Ontology Relations

    Overview The following page documents the relations used in the filtered GO ontology. For informatio ...

  5. MySQL超时配置

    connect_timeout:连接响应超时时间.服务器端在这个时间内如未连接成功,则会返回连接失败. wait_timeout:连接空闲超时时间.与服务器端无交互状态的连接,直到被服务器端强制关闭而 ...

  6. MapReduce的map个数调节 与 Hadoop的FileInputFormat的任务切分原理

    在对日志等大表数据进行处理的时候需要人为地设置任务的map数,防止因map数过小导致集群资源被耗光.可根据大表的数据量大小设置每个split的大小. 例如设置每个split为500M: set map ...

  7. JAVA中异常状况总结

    之前在<会当凌绝顶>这本书中学到过对于异常处理的知识,当时也是根据书上的代码,自己进行编写大概知道是怎么回事儿,王老师给我们上了一节课之后,发现异常处理可以发挥很大的作用.  通过在网络上 ...

  8. highchart 柱状图,单个样例

    var chart = Highcharts.chart('container', { chart: { type: 'column' }, title: { text: '月平均气温' }, sub ...

  9. eclipse 依赖别的 工程 断点进不去

    maven Debug 发现进不了断点. 点击右键-->Properties-->Java Compiler-->Classfile Generation, 勾选上Add line  ...

  10. JustOj 1486: Hello, world!

    题目描述 This is the first problem for test. Since all we know the ASCII code, your job is simple: Input ...