美文网首页
es6个人总结

es6个人总结

作者: 飞天胖 | 来源:发表于2018-07-04 22:37 被阅读0次

    let命令
    es6新增let命令,类似于var命令,但是声明的变量只是在let命令所在的代码块有效,并且let不可以在相同的作用域内重复声明也不存在变量提升,,而即let变量在声明之前不可以被使用var声明的变量则可以在声明之前可以使用值为undefined。
    例:

        {  
         let x=0;    
         let x=1;//报错  
         }
    

    const命令
    const声明的是一个常量,且常量在声明的时候必须初始化不能留到以后赋值否则会报错。const声明的常量不可变,复合型变量指的是指向的内存地址不可变,但复合型变量的内容是可变的 复合型常量例 ````

     const foo={}
     foo.prop=123;
     console.log(foo.prop);//123  
     foo={}//TypeError:"foo" is read-only
    

    上面的例子说明常量的属性值可以改变,一旦改变复合型常量指向的内存地址就会报错。
    块级作用域
    es6明确规定: 允许在块级作用域内声明函数 函数声明类似于var,即会提升到全局作用域或函数作用域的头部 函数的声明还会提升到所在的块级作用域的头部
    es6中六种声明变量的方法
    ES5中只有两种声明变量的方法:var命令和function命令。es6中增加了let命令、const命令、import命令、和class命令4种声明变量的方法
    解构赋值
    es6允许按照一定的模式从数组和对象中提取值,对变量进行赋值,这被称为解构赋值 解构赋值可以指定默认值,并且解构赋值的默认值是惰性求职的,当一个成员严格等于undefined时才会生效,且null不会生效,因为null不严格等于undefined. 默认值可以指定别的变量,前提是该变量已经声明 1.数组的解构赋值 数组解构赋值的右边必须是遍历的解构

    (1).完全解构赋值
     let[a,b,c]=[1,2,3]
     //a 1 
     //b 2
     //c 3
    
    (2).不完全解赋值
     let [a,b,,d]=[1,2,3]
     //a 1
     //b 2
     //d 3
    (3)指定默认值
     let [x=1,y=2]=[2]
     //x=2
     //y=2
    
    
    

    对象的解构赋值
    对象的赋值的内部机制是先找到同名属性,然后赋给对应的变量,真正被赋值的是后者,而不是前者。

    对象解构赋值的简写
    let {x}={x:123}
    x//123
    
    非简写
    let{x:a}={x:123}
    a//123
    x//x is not defined
    
    对象指定默认值
    let {x=3,y}={y:5}
    x//3
    y//5
    

    字符串的解构赋值
    字符串也可以解构赋值。这是因为此时,字符串被转换成了一个类似数组的对象。

    const [a, b, c, d, e] = 'hello';
    a // "h"
    b // "e"
    c // "l"
    d // "l"
    e // "o"
    函数参数的解构赋值
     function add([x, y]){
     return x + y;
     }
    
     add([1, 2]); // 3
    

    不能使用圆括号的三种情况
    1.变量声明语句时不能使用圆括号
    2.函数参数也属于变量声明,因此不能带有圆括号
    3.赋值语句的模式

    相关文章

      网友评论

          本文标题:es6个人总结

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