为什么80%的码农都做不了架构师?>>>
第二章 词法结构
- JavaScript区分大小写;/html不区分大小写
- JavaScript会忽略程序中标识(token)之间的空格;
- 直接量:程序中直接使用的数据值;
- 标识符:字母、下划线(_)、美元($)
- 保留字:JavaScript把一些标识符拿出来做自己的关键字
第三章 类型、值和变量
- 原始类型(primitive type):数字,字符串,布尔值
- 对象类型(object type)
- 两个特殊的原始值:null,undefined
- 特殊的对象——数组,表示带编号的值的有序集合
- 特殊的对象——函数,具有与它相关联的可执行代码的对象,通过调用函数来运行可执行代码,并返回运算结果
- 如果用函数来初始化(new)一个新建对象,我们称之为构造函数(constructor),每个构造函数定义了一类(class)对象
- 另外三种有用的类:日期(Date),正则(RegExp),错误(Error)
- 原始类型 VS 对象类型,可以拥有方法的类型 VS 不可以,可变类型 VS 不可变
- 数字:Math,IEEE-754浮点数表示法,
- 文本:转义字符,模式匹配
- 布尔值
- null,undefined
- 全局对象
- 包装对象:存取数字,字符串或布尔值的属性时创建的临时对象
- 不可变的原始值,可变的对象引用:引用类型 VS 基本类型
- 类型转换:显式类型转换,parseInt(),parseFloat(),toString(),toFixed(),toExponential(),toPrecision()
- 对象转化为原始值:toString(),valueOf()
- 变量声明:重复的声明 VS 遗漏的声明
- 变量作用域(scope)
- 函数作用域和声明提前:函数内声明的所有变量在函数体内都是可见的。变量在声明之前甚至就可以用了——声明提前。
- 当声明一个全局变量时,就相当于定义了全局对象的一个属性。当使用var声明时,这个变量/属性是不可以delete的。
- 作用域链!!!
每一段javascript代码(全局代码或者函数)都有一个与之关联的作用域链(scope chain)。
这个作用域链是一个对象列表或链表,这组对象定义了这段代码“作用域中”的变量。
当javascript做变量解析的时候,会从链中的第一个对象开始查找,一直到找到该变量,否则抛出一个引用错误(ReferenceError)。
在javascript顶层代码中,作用域链由一个全局对象组成。
转载于:https://my.oschina.net/drei/blog/803786