Object.freeze()
Object.freeze() 方法可以冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这个对象添加新的属性,不能删除已有属性,不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改已有属性的值。此外,冻结一个对象后该对象的原型也不能被修改。
const obj = {
prop: 42
};
Object.freeze(obj);
obj.prop = 33;
//报错
console.log(obj.prop);
//输出42
箭头函数
引入箭头函数有两个方面的作用:更简短的函数并且不绑定this。
const myFunc = function() {
const myVar = "value";
return myVar;
}
//相当于
const myFunc = () => {
const myVar = "value";
return myVar;
}
可以传参数, 参数可以有默认值
…args表示可以传任意参数个数
…arr 返回一个解压的数组。 也就是说,它展开数组。 然而,展开操作符只能够在函数的参数中或者数组中使用。 下面的代码将会报错:
const spreaded = ...arr;
正确使用:
使用展开操作符将 arr1 中的内容都复制到 arr2 中去。
const arr1 = ['JAN', 'FEB', 'MAR', 'APR', 'MAY'];
let arr2;
arr2 = [...arr1];
console.log(arr2);
解构赋值
解构赋值是 ES6 引入的新语法,用来从数组和对象中提取值,并优雅地对变量进行赋值。
可以尽多的或者很少的提取你需要的值
对象
//ES5
const user = { name: 'John Doe', age: 34 };
const name = user.name;
const age = user.age;
//ES6
const {name, age} = user;
//还可以改变变量名
const {name:username, age:userage} = user;
数组
交换a,b值
let a = 8, b = 6;
[a, b] = [b, a];