ES6知识点

  • var,const,let的区别

  1. var: 没用块级作用域,变量声明提升(可以先使用再声明变量),未用var声明的变量会被添加一个全局作用域,而用var声明的变量作用域是当前上下文。

  2. const:const用来声明常量,一旦声明,其值就不能改变,所以用const声明变量时必须立即初始化。

     const声明的常量具有块级作用域,不允许重复声明常量,不存在常量提升。

    const PI = 3.14;
    PI    // 3.14
    
    PI = 3;
    // TypeError: "PI" is read-only
    // const声明常量时立即赋值,后面不能改变它的值
  3. let: let声明的变量也具有块级作用域,不允许重复声明变量,不存在变量提升。
  4. {
        let a = 10;    // a只在let命令所在的代码块内有效
        var b = 1;        
    }
    a    // ReferenceError: a is not defined
    b    // 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()用来判断一个值是否为整数。
    注意: 在JavaScript内部,整数和浮点数是同样的储存方法,3.0和3视为同一个值
  4. 安全整数和Number.isSafeInteger()
    安全整数范围:-2^{53}——2^{53}(不含两个端点)
  5. Math对象的扩展
    Math.trunc()用于去除一个数的小数部分,返回整数部分
  6. Math.trunc(5.8)    // 5
    Math.trunc(-4.9)    // -4

    Math.sign()用于判断一个数是正数、复数、零

    正数    返回+1
    复数    返回-1
    0        返回0
    -0       返回-0
    其他值  返回NaN

 

    Math.cbrt()计算一个数的立方根
    Math.clz32()返回一个数的32位无符号整数形式有多少个前导0
    Math.imul()返回两个数以32位带符号整数相乘的结果,结果也为32位带符号整数
    Math.fround()返回一个数的单精度浮点数形式
    Math.hypot()返回所有参数的平方和的平方根

  • 箭头函数

    var f = v => v;
    // 等同于 
    var f = function(v) {
        return v;  
    }
    var sum = (num1, num2) => num1 + num2;
    // 等同于 
    var sum = function(num1, num2) {
        return num1+num2;  
    }




 

posted @ 2017-02-25 21:08  Huang-jing  阅读(127)  评论(0编辑  收藏  举报