ES7

作者: 三寸日光D | 来源:发表于2018-01-24 22:15 被阅读0次

    一、幂运算符

    幂运算符是两个星号(**),其左侧是底数,右侧则是指数
    也可以使用 Math.pow() 来获取相同结果。

    let result = 5 ** 2;
    console.log(result); // 25
    console.log(result === Math.pow(5, 2)); // true
    
    • 运算符左侧不能是除了 ++ 或 -- 之外的任意一元表达式;
    • ++ 或 -- 作为前缀会在其他任意运算发生之前修改操作数,而作为后缀则会在整个表达式计算完毕后才修改操作数。
    let num1 = 2,
    num2 = 2;
    console.log(++num1 ** 2); // 9
    console.log(num1); // 3
    console.log(num2-- ** 2); // 4
    console.log(num2); // 1
    

    二、Array.prototype.includes() 方法

    方法接受两个参数:需要搜索的值、可选的搜索起始位置索引。
    当提供了第二个参数时, includes() 会从该位置开始尝试匹配(默认的起始位置为 0 )。若在数组中找到了该值,返回 true ;否则返回 false 。例如:

    let values = [1, 2, 3];
    console.log(values.includes(1)); // true
    console.log(values.includes(0)); // false
    // 从索引 2 开始搜索
    console.log(values.includes(1, 2)); // false
    
    let values = [1, NaN, 2];
    console.log(values.indexOf(NaN)); // -1
    console.log(values.includes(NaN)); // true
    

    若只想检查某个值是否存在于数组中,而不想知道它的位置,使用 includes(),这是由于 includes() 与 indexOf() 方法对于 NaN 的处理不同。而若确实想知道某个值在数组中的位置,那么就必须使用 indexOf() 方法。

    三、函数作用域严格模式的改动

    ES2016 规定如果函数的参数被进行解构或是拥有默认值,则在该函数内部使用 "use strict" 指令将是违法的

    // 没有问题,使用了简单参数列表
    function okay(first, second) {
    "use strict";
    return first;
    }
    // 语法错误
    function notOkay1(first, second=first) {
    "use strict";
    return first;
    }
    // 语法错误
    function notOkay2({ first, second }) {
    "use strict";
    return first;
    }
    

    相关文章

      网友评论

          本文标题:ES7

          本文链接:https://www.haomeiwen.com/subject/ugauaxtx.html