ES6基本知识点
一、var,const,let的区别
1.var: 没用块级作用域,变量声明提升(可以先使用再声明变量),未用var声明的变量会被添加一个全局作用域,而用var声明的变量作用域是当前上下文。
2.const:const用来声明常量,一旦声明,其值就不能改变,所以用const声明变量时必须立即初始化。
const声明的常量具有块级作用域,不允许重复声明常量,不存在常量提升。
1 | const PI = 3.14; |
3.let: let声明的变量也具有块级作用域,不允许重复声明变量,不存在变量提升。
1 | { |
二、数值的扩展
1.二进制和八进制分别用前缀0b(或0B)和0o(或0O)表示
2.ES6在Number对象上提供了Number.isFinite()和Number.isNaN()方法,用来检查Infinite和NaN这两个特殊值。
Number.isFinite()和Number.isNaN()这两个新方法和传统的全局方法isFinite()和isNaN()的区别:
传统方法先调用Number()将非数值转化为数值再进行判断,而新方法只对数值有效,对非数值一律返回false。
3.Number.isInteger()用来判断一个值是否为整数。
1 | 注意: 在JavaScript内部,整数和浮点数是同样的储存方法,3.0和3视为同一个值 |
4.安全整数和Number.isSafeInteger()
安全整数范围:-2^{53}——2^{53}(不含两个端点)
5.Math对象的扩展
Math.trunc()用于去除一个数的小数部分,返回整数部分
1 | Math.trunc(5.8) // 5 |
Math.sign()用于判断一个数是正数、复数、零
1 | 正数 返回+1 |
Math.cbrt()计算一个数的立方根
Math.clz32()返回一个数的32位无符号整数形式有多少个前导0
Math.imul()返回两个数以32位带符号整数相乘的结果,结果也为32位带符号整数
Math.fround()返回一个数的单精度浮点数形式
Math.hypot()返回所有参数的平方和的平方根
三、箭头函数
1 | var f = v => v; |