ES6是ECMAScript的缩写,是网页脚本语言的最新规范,JavaScript、Jscript、ActionScript都是它的实现。
let a=1;
let a=2;//报错
{
let a=1;
}
alert(a);//报错
const a=1;
a=2;//报错
es6可以快捷的取出数组中的元素:
let[luoxiang,zhangsan,lisi]=['罗翔','张三','李四']//let[名称可以任意,个数和数组长度需保持一致]
console.log(luoxiang,zhangsan,lisi);
es6可以快捷的取出对象中的属性:
let user={name:'zhangsan',age:18}
let{name,age}=user;//let{这里的名称必须和user里的属性保持一致}
console.log(name,age);
个人总结没啥卵用,取数组元素array[index]或array[key]不香吗?取对象object.key不香吗?
es6提供模板字符串功能,使用转义符定义的字符串,可以像el表达式一样在字符串中使用变量,免去了拼接操作。
其次模板字符串还可以跨行,而不用拼接\n
或者
,有点像python的三引号字符串。
栗子:
let name='zs';
let age=18;
let user=`姓名:${name},
年龄:${age+10}`;
console.log(user);
es6对声明对象进行了简化操作,在创建对象时,可以不指定key,默认key为变量名。
let a='aa';
let b='bb';
let user={a,b};
console.log(user);//{a: 'aa', b: 'bb'}
es6可以对对象进行克隆操作,使用{...要克隆的对象}
即可将对象内部属性复制到新的对象中。
栗子:
let source={name:'张三',age:18};
let newobj={...source};
console.log(newobj);//{name:'张三',age:18}
可以同时克隆多个对象,并且会自动合并,如果有重复的属性,后面的会覆盖前面的。
let source1={name:'张三',age:18};
let source2={name:'李四',sex:'男'};
let newobj={...source1,...source2};
console.log(newobj);//{name: '李四', age: 18, sex: '男'}
es6提供了更简洁的声明匿名函数的方式,用于替换let aaa=function(){}
操作。
语法:参数 => 函数体
,和java8的Lambda函数一模一样。
栗子:
无参
let aaa=()=>'abc';
console.log(aaa());//abc
单个参数
let aaa=a=>'abc'+a;
console.log(aaa(333));//abc333
多个参数
let aaa=(a,b)=>a+b;
console.log(aaa(1,2));//3