ES6中的一些基本知识点

    科技2024-02-02  121

    ES6

    一、let,const的区别是什么?

    1.let:只在块级作用域内有效, 暂时性死区 { let a = 10 } 变量的声明不能提升 var a = 10 ==> var a a=10 let a = 10 var test = function(){

    } function test(){ 整体提升 } 变量不可以重复声明 let a = 10 a = 20

    2.const 只在代码块内有效 存在暂时性死区 声明不能提升 不可以重复声明 声明的是常量,不可改变常量的值 声明的同时必须初始化 const a a = 10

    const a = 10 a = 20

    二、解构

    解构 可以把对象或者是数组中的值,拿出来赋值给变量

    let [a,b,c] = [1,2,3] a=1 b=2 c=3 等式两边如果模式相同的话,那么左右是一一匹配的关系 等式两边如果模式不相同的话,右数据多于左 解构失败 let [a,b,c,d] = [1,2,3] d=undefined 等式两边如果模式不相同的话,左数据多于右 let [a,b,c] = [1,2,3,4,5] c = 3 let [a,b,...c] = [1,2,3,4,5] c = [3,4,5]

    默认值 改变该变量的值,那么生效的是改变之后的值 没改变变量的值/undefined,那么生效的就是默认值

    let [a=10,b,c=12]=[1,2] a=1 b=2 c=12

    数组的解构

    let [a,b,c] = [1,2,3,4,5] c = 3 let [a,b,...c] = [1,2,3,4,5] c = [3,4,5] let [a,b,{name}] = [1,'hello',{name:tom}] a = 1 b = hello name = tom let [a,b,[c,d]] = [1,2,[3]] a = 1 b = 2 c = 3 d = undefined

    对象的解构

    let obj = { name:'tom', age:12 } let {name:username,age:userage} = obj username userage let {name:name,age:age}

    简写

    let {name,age} = obj

    字符串的解构 是可迭代的 把字符串转换成类数组的形式

    let [a,b,c,d] = '1234' a = 1 b =2 c = 3 d = 4

    数值和布尔值 不可迭代

    let [a,b,c]= true let [a,b,c]= 123 解构原型上的方法 let {toString} = true toString == Boolean.prototype.toString let {trim} = '123' 原型链 继承!!!!! 类 函数的解构 function test([a,b]){ } test([1,2])
    Processed: 0.011, SQL: 8