1. 常量
// es5常量
var person = {
'name': 'shi'
}
Object.defineProperty(person, 'sex', {
writable: false,
value: 'man'
})
// es6常量
const sex = 'man';
2. 箭头函数
不改变this的指向,this指向定义时候的实例
() => {}
3. 作用域
// let
const arr = [];
for (let index = 0; index < 3; index++) {
arr[index] = function () {
return index * 2;
}
}
console.table([
arr[0](),
arr[1](),
arr[2]()
]);
// var
const arr1 = [];
for (var i = 0; i < 3; i++) {
arr1[i] = function () {
return i * 2;
}
}
console.table([
arr1[0](),
arr1[1](),
arr1[2]()
]);
4. 默认参数
4.1 默认参数
function f (x, y = 7, z = 21) {
return x+y+z
}
4.2 必填参数检查
es6还可以对必填参数进行检查
function checkParams() {
throw new Error('params can\'t be empty')
}
function f(x=checkParams(), y = 2, z = 3) {
return x + y + z;
}
try {
f();
} catch (error) {
console.log(error)
}
4.3 可变参数操作
用一个求和的例子去说明es6对于可变参数的操作
// ES5对数据可变参数进行求和
function sum() {
// arguments是伪数组,需要通过array的原型方法对其进行操作
var arr = Array.prototype.slice.call(arguments);
var sum = 0;
arr.forEach(function (item) {
sum += item * 1;
});
return sum;
}
console.log(sum(1, 2, 3, 6));
// ES6对于可变参数进行求和
// ...扩展运算符
function sum1(...arr) {
let sum = 0;
arr.forEach(item => {
sum += item * 1;
});
return sum;
}
console.log(sum1(1, 2, 3, 6));
5. 扩展运算符
有很多用途,这里只是简单的介绍一下
5.1 数组合并
// es5写法
var params = [1, true, 'test'];
var arr = [2, '合并'].concat(params);
console.log(arr);
// es6的写法
var params = [1, true, 'test'];
var arr = [2, '合并', ...params];
console.log(arr);
只是一些简单的es6的语法,想详细学可以看阮一峰老师的es6书
网友评论