参考:阮一峰 es6入门 https://es6.ruanyifeng.com/
1. let
声明的变量只在它所在的代码块有效(for循环器使用等)
1.1 不存在变量提升,故变量只能先声明再使用
1.2 不可重复声明
1.3 暂时性死区
1.4 块级作用域
2. const 声明一个只读常量(不允许再改变)
2.1 不存在变量提升(存在暂时性死区)
2.2 将一个对象声明为常量必须非常小心
2.2.1 const 实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,const
只能保证这个指针是固定的(即总是指向另一个固定的地址),至于它指向的数据结构是不是可变的,就完全不能控制了。
2.2.2 将对象保存为常量,需要使用使用Object.freeze方法
将对象包括对象属性进行冻结
3. es6声明对象的方法(6种):var function let const import class
4. 顶层变量:var、function声明的全局变量为顶层变量的属性,let、const、class声明的全局变量不属于顶层变量的属性
5. 数组的解构赋值
5.1 为多个变量赋值: let [a, b, c] = [1, 2, 3];
5.2 不完全解构:值多于变量,解构可以成功,否则报错
5.2.1 如赋值等号右边不是数组(严格言之,非可遍历解构),报错
5.2.2 对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而不是前者。
5.3 默认值:解构赋值允许指定默认值
5.4 ES6 内部使用严格相等运算符(===
),判断一个位置是否有值。所以,只有当一个数组成员严格等于undefined
,默认值才会生效
5.5 对象解构指定默认值
5.6 遍历 Map 结构
6. 模板字符串
用反引号(`)标识,可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
6.1 模板字符串中嵌入变量,需要将变量名写在${}
之中
6.2 所有模板字符串的空格和换行都会被保留,可使用trim
方法进行消除
6.3 模板字符串之中还能调用函数
6.4 如果需要引用模板字符串本身,在需要时执行,可以写成函数
7. 字符串的新增方法
7.1 repeat(): repeat
方法返回一个新字符串,表示将原字符串重复n
次
eg: 'x'.repeat(3) // "xxx"
7.2 padStart(a,b)、padEnd(a,b): 字符串长度补全(头部或尾部),a指期望补全后字符串长度,b是一个补全单位,如果省略第二个参数,默认使用空格补全长度
eg:'x'.padStart(5, 'ab') // 'ababx'
7.2.1 用途
7.3 trimStart()、trimEnd(): 消除字符串头部/尾部空格、tab 键、换行符等不可见的空白符号,返回新字符串
7.4 replaceAll():
eg: 'aabbcc'.replaceAll('b', '_')
// 'aa__cc'
8.判断参数类型
8.1Number.isFinite()
用来检查一个数值是否为有限的(finite),即不是Infinity
。
8.2Number.isNaN()
用来检查一个值是否为NaN,如果参数类型不是
NaN
,Number.isNaN
一律返回false
。
注意:它们与传统的全局方法isFinite()
和isNaN()
的区别在于,传统方法先调用Number()
将非数值的值转为数值,
再进行判断,而这两个新方法只对数值有效,Number.isFinite()
对于非数值一律返回false
,Number.isNaN()
只有对于NaN
才返回true
,非NaN
一律返回false
。
8.3Number.isInteger()
用来判断一个数值是否为整数,如果参数不是数值,Number.isInteger
返回false
。
注意: JavaScript 内部,整数和浮点数采用的是同样的储存方法,所以 25 和 25.0 被视为同一个值,得到结果为true。
一些误判情况:
8.4 Number.EPSILON:设置“能够接受的误差范围”

8.5 Math对象的扩展
8.5.1 Math.trunc
方法用于去除一个数的小数部分,返回整数部分
8.5.2 Math.sign(): 用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值.
返回五种值。参数为正数,返回+1
;参数为负数,返回-1
;参数为 0,返回0
;参数为-0,返回-0
;其他值,返回NaN
。