ES6简单语法

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书

你可能感兴趣的:(ES6简单语法)