es6简介

新增变量声明关键字
es5 var声明变量 。 提升变量,并赋值为undefined 。
例1- console.log(test) ;
var test;
打印结果为undefined 。
注:老版本中不使用var 声明的会跳出局部,变为全局变量。
不用var 声明的变量可删除,因为没声明的变量为window的属性,它的描述符的configurable为true,表示可以被删除
var 声明的也是window变量 ,但是描述符 configurable为false表示不可以被删除
打印未声明的变量报错- is not defined(变量未定义)

es6 添加了let声明变量和const声明常量
let 和 const声明的变量 ,在未声明变量的地方使用变量会报错,这个文档说的暂时性死区。
例2- console.log(txt) ;
let txt;或者const txt;
打印结果为报错 ,语法错误,该标识符已经存在。未赋值
例3- typeof ccc
let ccc
运行会报错,错误提示ccc is not defined

使用let和const 有块级作用域–?️大括号就是一个块级作用域,let和const不允许重复声明相同变量 ,声明重复变量的时候会报该变量已经存在。
let和const声明的变量不会成为window的属性。
注意 var声明过的变量 let/const 再次声明会报错,let/const声明过的变量 var再次声明会报错。
let和const参考文档

es5的声明和赋值
例:var a=1,b=2,c=3;

es6新增的数组解构赋值
例:var [a,b,c]=[1,2,3];=>a=1,b=2,c=3;
模式匹配 ,只要两边的解构一样,值就能对应
例:var [a,[b],d]=[1,[2]];=>a=1,b=2,c=undefined;
例:var [,b]=[1,2,3];=>b=2;
模式匹配使用可以使用默认值/当值不等于严格等于undefined的时候都会覆盖默认值如下:
例:var [b=‘c’]=[undefined]和[b=‘c’]=[] 结果都是 b=‘c’
例:var [b=‘c’]=[null]=>b=null
对象一样可以解构赋值
例:var {b,c}={a:1,b=2}=>b=2,c=undefined;变量名一样就可以取到值。不一样就是undefined
例:var {a:b,c:d}={a:1}=>b=1,d报错 。先把值赋值在前面,然后在赋值后面,并提出变量,后面打印出d报错

典型用法:
两个值相互替换,不需要增加新的变量
var a=1,b=2
[a,b]=[b,a]=>a=2,b=1
解构赋值和用法参考文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值