ES6

作者: Ray1214 | 来源:发表于2016-11-08 10:18 被阅读0次

    变量声明:


    除了 var ,我们现在还可以使用两个新的标示符来定义一个变量 ——letconst。它们的区别:

    1. letconst不存在变量提升(需先声明再使用);
    2. const声明的为常量,不可重复赋值(重复赋值会失败但不会报错);
    3. 重复声明用const定义的变量会报错;
    4. 通过var声明的变量在函数内都是可用的,而通过let声明的变量则只属于就近的花括号括起来的语句块(属于块级作用域);
    使用 var 的栗子:
    //函数作用域内也声明了snack变量,变量得到提升。因if没有执行,所以snack的值为undefined
    var snack = 'Meow Mix';
    
    function getFood(food) {
        if (food) {
            var snack = 'Friskies';
            return snack;
        }
        return snack;
    }
    
    getFood(false); // undefined
    
    使用let的栗子
    //let声明不提升,if未执行,等同于函数作用域内没有声明snack变量,会向作用域链上级查找
    let snack = 'Meow Mix';
    
    function getFood(food) {
        if (food) {
            let snack = 'Friskies';
            return snack;
        }
        return snack;
    }
    
    getFood(false); // 'Meow Mix'
    

    立即执行函数:

    //平时我们是这样处理的
    (function( doc ){
        var tit = doc.title;
    })( document );
    console.log( tit );        //Reference Error
    
    //es6自执行函数:
    {
        let tit= document.title;
    }
    
    console.log( tit ); // Reference Error
    

    解构:


    var [a, b, c] = [1, 2, 3]; let [head, ...tail] = [1, 2, 3, 4]; head // 1 tail // [2, 3, 4]
    ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值;

    Math新增方法:


    Math.trunc()
    Math.trunc方法用于去除一个数的小数部分,返回整数部分。

     Math.trunc(4.1) // 4
     Math.trunc(4.9) // 4
     Math.trunc(-4.1) // -4
     Math.trunc(-0.1234) // -0
     Math.trunc('123.456')// 123
     Math.trunc(NaN);  // NaN
     Math.trunc('foo');  // NaN
     Math.trunc();  // NaN
    

    Math.sign()
    Math.sign方法用来判断一个数到底是正数、负数、还是零。

      Math.sign(-5) // -1
      Math.sign(5) // +1
      Math.sign(0) // +0
      Math.sign(-0) // -0
      Math.sign(NaN) // NaN
      Math.sign('foo'); // NaN
      Math.sign();  // NaN
    

    Math.cbrt()
    Math.cbrt方法用于计算一个数的立方根

      Math.cbrt(-1) // -1
      Math.cbrt(0)  // 0
      Math.cbrt(1)  // 1
      Math.cbrt(2)  // 1.2599210498948734
      Math.cbrt('8') // 2
      Math.cbrt('hello') // NaN
    

    Math.hypot()
    Math.hypot方法返回所有参数的平方和的平方根

      Math.hypot(3, 4);  // 5
      Math.hypot(3, 4, 5);  // 7.0710678118654755
      Math.hypot();  // 0
      Math.hypot(NaN);  // NaN
      Math.hypot(3, 4, 'foo'); // NaN
      Math.hypot(3, 4, '5');  // 7.0710678118654755
      Math.hypot(-3);  // 3
    

    数组的扩展:


    Array.from()
    方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)。

    Array.of()
    方法用于将一组值,转换为数组。

      Array.of(3, 11, 8) // [3,11,8]
      Array.of(3) // [3]
      Array.of(3).length // 1
    

    数组实例的copyWithin()
    数组实例的copyWithin方法,在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。也就是说,使用这个方法,会修改当前数组。

      [1, 2, 3, 4, 5].copyWithin(0, 3)// [4, 5, 3, 4, 5]
    

    数组实例的find()和findIndex()
    数组实例的find方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。

      [1, 4, -5, 10].find((n) => n < 0)// -5
    

    数组实例的fill()
    fill方法使用给定值,填充一个数组。

      ['a', 'b', 'c'].fill(7, 1, 2)// ['a', 7, 'c']
      ['a', 'b', 'c'].fill(7)// [7, 7, 7]
    

    相关文章

      网友评论

          本文标题:ES6

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