ES6知识拾遗,再读ES6入门书籍总汇

1.var,let,const区别
答:(1).var有变量声明提高,let&&const没有,这样致使了let,const必须声明后才能够访问使用(tdz) => 暂时性死区”也意味着typeof再也不是一个百分之百安全的操做,若是一个变量没有被声明,使用typeof反而不会报错(值会变为'undefined')(没有遇到let/const),(2)var,let能够在定义后从新赋值,const是个常量,它不能够(可是若是他是复杂数据类型,改变它的属性值是没问题的,与定义概念并不冲突),(3).var能够重复声明,取值去最后的声明,let不容许在相同做用域内,重复声明同一个变量,(3).块状做用域 => {}这句话有异议,可是说的颇有道理,块级做用域的出现,实际上使得得到普遍应用的当即执行函数表达式(IIFE)再也不必要了。Object.freeze({}); => 冻结对象,(4).未定义就声明的变量会默认为window全局的变量,var的变量都归window全部,let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性即不会归window全部es6

总结:es6的六种声明变量  => var let const function import class  注意:在浏览器环境指的是window对象,在 Node 指的是global对象。

2.变量的解构赋值 => es6容许必定的模式,从数组中和对象中提取,对变量进行赋值,这被称为解构数组

=> 只要某种数据结构具备 Iterator 接口,均可以采用数组形式的解构赋值,若是解构失败,变量的值等于        
undefined

(1).数组的模式匹配 模式匹配”,只要等号两边的模式相同(数据结构),左边的变量就会被赋予对应的值
    let [a, b, c] = [1, 2, 3]
(2).对象的解构赋值
    对象的解构与数组有一个重要的不一样。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的                
    属性没有次序,变量必须与属性同名,才能取到正确的值
    let {foo, too} = {foo: 'foo', too: 'too'}
(3).字符串的解构赋值
    字符串也能够解构赋值。这是由于此时,字符串被转换成了一个相似数组的对象

3.模板字符串浏览器

`${变量1},{变量2}` => `${fn()}`  {}最终会调用toString的方法,可嵌套

4.字符串扩展安全

5.函数的扩展数据结构

1.rest参数 ES6 引入 rest 参数(形式为...变量名),用于获取函数的多余参数,这样就不须要使用arguments对象了。rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中。
相关文章
相关标签/搜索