今天的码农女孩总结了ES6的部分笔记

let和const命令
let命令:用于声明变量。类似于var,但是所声明的变量只在代码块内有效,let没有变量提升。
1.没有变量提升
        console.log(b);//报错
        let b=23;
2.只在代码块内有效
        if(true){
            let a=12;
        }
        console.log(a);//报错
3.暂时性死区
        只要在块级作用域内声明let,它所声明的变量就绑定在这个区域,不受外界影响
        1.同一个作用域中不能重复声明
        let a=12;
        if(true){
            a=13;
            let a;//报错的源头
            console.log("代码块里"+a);//报错
        }
        console.log("全局的"+a);//报错。
        2.let和var也不能声明相同变量
        var a=11;
        let a=12;
        console.log(a);//报错
const命令:const声明一个只读常量,一旦声明,不能改变,也没有变量提升
1.变量定义不能改变
        const PI=3.1415;
        console.log(PI);//3.1415
        PI=3.15;
        console.log(PI);//报错
2.没有变量提升
        console.log(PI);//报错
        const PI=3.1415;
3.基本类型不能改值,引用类型不能改地址
        const obj={name:"张三",age:23}
        obj.name="李四"
        console.log(obj.name);//值可以改,输出李四
        obj=[1,2,3]
        console.log(obj[0]);//对象不能改,报错
声明方式有几种:
var let const function class import
变量的解构赋值:
用来减少变量的定义,并且从数组或对象中提取值,更方便,ES6提出了解构赋值
1.数组的解构赋值:
        let [a,b,c]=[1,2,3]
        console.log(a);//1
        console.log(b);//2
        console.log(c);//3
可以省略变量:
        let [,,b]=[1,2,3]
        console.log(b);//3
可以与扩展运算符连用
        let [a,...b]=[1,2,3,4,5]
        console.log(a);//1
        console.log(b);//[2,3,4,5]
可以定义默认值
        let [a,b,c=0]=[1,2]
        console.log(a);
        console.log(b);
        console.log(c);//0
可以引用解构赋值的其他变量
        let [a,c=a]=[1]
        console.log(a)//1
        console.log(c)//1
注意错误:
1.解构赋值前后类型对应
        let [a]=1
        console.log(a);//报错
2.undefined不能替换默认值
        let [a,c=0]=[1,undefined]
        console.log(a)//1
        console.log(c)//0不能替换 null可以替换
3.引用扩展运算符和解构赋值的其他变量不能倒着写
        let [...a,b]=[1,2,3,4,5]
        console.log(a);//报错
        console.log(b);

        let [c=a,a=2]=[]
        console.log(a)//报错
        console.log(c);
2.对象的解构赋值
基本用法:
        let {name,sex}={name:"张亮",sex:"男"}
        console.log(name);//张亮
        console.log(sex);//男
给变量起别名:
        let {name:a,sex:b}={name:"张亮",sex:"男"}
        console.log(a);//张亮
        console.log(b);//男
        console.log(name);//报错
        console.log(sex);
可以定义默认值:
        let {name:a,sex:b,age=22}={name:"张亮",sex:"男"}
        console.log(age)//22
嵌套对象的解析:
    var {name,mon:[a,b,c]}={name="张",mon:[2000,3000,1000]}
        console.log(name)//张
        console.log(a)//2000
        console.log(b)//3000
        console.log(c)//1000

3.字符串的解构赋值
解构字符串的值:
        var [...arr]="hello"
        console.log(arr)//["h","e","l","l","o"]
解构对象下的属性和方法:
        var {length}="hello"
        console.log(length)//5

        var {toString}=123
        console.log(toString)//输出toString函数体

4.函数下的参数解构赋值
当参数为一个数组进行解构
        function fun(a,b,c){
            console.log(a)
            console.log(b)
            console.log(c)
        }
        fun([1,2,3])
当参数为一个对象进行解构
       function fun1({name:a,age:b}){
            console.log(a+","+b) 
        }
        fun1({name:"z",age:23})

注意:当解构赋值后面的值为其他类型,先考虑这个类型是否转化成对象,否则不能解构
例:交换x,y的值
        var x=100
        var y=200
        var [y,x]=[x,y]
        console.log(x)
        console.log(y)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值