ES6介绍
ES6, 全称 ECMAScript 6.0 ,是 JavaScript 语⾔的下⼀代标准,在 2015 年 6 ⽉正式发布。它的⽬标,是使得 JavaScript 语⾔可以⽤来编写复杂的⼤型应⽤程序,成为企业级开发语⾔。
ES6 的出现主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念
目前存在少数低版本浏览器的 JavaScript 是 ES5 版本,大多数的浏览器已经支持 ES6
ES6提供了大量的语法糖。
对象的解构
对象的解构 通过{}解构
let {a,b,c}={a:1.b:2}
console.log(a) //1,
console.log(b) //2,
console.log(c) //undefind 解构不成功
当给默认值时,只有当这个值为 === 的undefind的值时,给的默认值才有效
let {a,b,c=111,d=3,e=333}={a:1,b:2,c:222,e:undefined}
console.log(c) //222 c不为undefind,给的值不起效
console.log(d)//3,因为d在右边对象为undefind,所以有效
console.log(e) //333
数组的解构
数组的解构,通过中括号[]解构,用法与对象解构一样。
如果解构不成功,会获取到一个undefined值
给默认值时,只有当这个值为 === 的undefined值时,给的默认值才有效
let [a,b,c,d,e = 4] = [1,2,3]
a //1
b //2
c //3
d //undefined
e //4 默认值
字符串的解构赋值
字符串也可以解构赋值。这是因为此时,字符串被转换成了一个类似数组的对象。
const [a, b, c, d, e] = 'hello';
a // "h"
b // "e"
c // "l"
d // "l"
e // "o"
类似数组的对象都有一个length
属性,因此还可以对这个属性解构赋值。
let {length : len} = 'hello';
len // 5
数值与布尔值的解构赋值
解构赋值时,如果等号右边是数值和布尔值,则会先转为对象。
// 数值和布尔值基本包装类与字符串不一样
let { a} = true;
console.log(a);//undefined
// 数值和布尔值的包装对象都有toString属性,因此变量s都能取到值。
let {toString: b} = true;
b === Number.prototype.toString // true
console.log(b);//[Function: toString]
let {toString: s} = 123;
s === Number.prototype.toString // true
console.log(s);//[Function: toString]
解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转为对象。
函数的解构
// 函数的解构
let obj={
name:'we',
age:12
}
function t({name,gender,gg=24}){
console.log(name,gender,gg)
}
t(obj)//we undifind 24