2018-03-04

var let const 的用法

var 定义的变量 1.可以到处去用,2在作用域里变量会被提升,3.可以重复定义多个相同的变量,4.定义的变量可以被重复赋值,也可以不赋值。

let 定义变量  1.只能在当前的块级作用域链里面使用, 2变量不会被提升, 3.不可以重复定义多个相同变量, 4定义的变量可以被重复赋值,也可以不赋值。


   let name="lisi",age=18,sex="nan" 

            let [name,age,sex]=["lisi",18,"nan"]

            let {name,age,sex}={name:"lisi",age:"18",sex:"nan"}//注意前面的对象里面的key要和后面对象的key命名要一致才能解析。   

            console.log(name)

            console.log(age)

            console.log(sex)

              let {name,age,friends,pet}={name:"lisi",age:"18",friends:["lulu","王五"],pet:{name:"王xx",age:20}}

            console.log(name)

            console.log(age)

            console.log(friends)

            console.log(pet)


const 定义的变量  1.只能在当前的块级作用域链里面使用, 2变量不会被提升, 3.不可以重复定义多个相同变量, 4定义的变量必须要赋值,而且也不允许被修改,如果想修改,只能把定义成复杂类型,

例如: 

const  a={nane:"张三"}

a.nane="李四";

console.log(a);//{nane:"李四"}; 因为基本类型和复杂类型数据存放的方式不一样,一个是存放在栈路面,一个是放在推里面,所以复杂类型修改的是它的地址里面数据,

    let set = new Set([1, 2, 4, 5, 6, 1, 3, 4, 2, 3]);  //let的数组去重

        // let set = new Set();

        console.log(set);

        console.log(set.entries().next().value[0]); //1 ,通过这种方法取到集合里面的元素,但是也只能拿到一个,要想取的后面元素还没找到方法, 

你可能感兴趣的:(2018-03-04)