点击查看 ECMAScript 6语法参考.

ECMAScript 6

块级作用域 let

let 局部定义   vs   var 全局定义
{
    let a = 200;
    console.log(a); //可以打印出来
}
console.log(a); //打印不了

let 不可重复定义
var 可以重复定义

只读变量 const

//声明时就要进行初始化,否则会报错
const i = 0;  //无法修改
// const声明对象  对象的绑定不能修改,但对象的属性和值可以修改
const person={
    name:'code'
}
person.name='cc' //ok
// 如果是在代码块中,就跟let一样了(局部变量)

模板语法

ES5 
let msg='I'm ok';
console.log(msg);
var msg="hello"+"world"
console.log(msg)

ES6 推荐  模板语法 ``
var msg=`hello \ I'm a student`;
console.log(msg)

··· console ···
hello I'm a student

let msg = `听党指挥
能打胜仗
作风优良
`
console.log(msg)
··· console ···
听党指挥
能打胜仗
作风优良

【字符串占位符】${}
let name = 'zhangsan';
let msg = `Hello! my name is ${name}`
console.log(msg)
··· console ···
Hello! my name is zhangsan

了解解构赋值

箭头函数

Es6 允许箭头函数  =>
单一参数
let f = v => v;
f(1) // 1

等价于
let f = function(v){
    return v;
}
f(1) // 1

等价于
function f(v){
return v;
}
f(1) // 1

没有参数
let f2 = () =>'hello world'
console.log(f2());
··· console ···
hello world

多个参数
let f3 = (a,b) => a + b
console.log(f3(4,5))
··· console ···
9
箭头函数返回对象 要用()包裹起来
// 多参简写  ...arg
        let calculate = (yun, ...arg) => {
            let sum = 0;
            let sum2 = 1
            if (yun == '*') {
                for (let i = 0; i < arg.length; i++) {
                    sum2 *= arg[i];
                }
                return sum2;
            }
            if (yun == '+') {
                for (let i = 0; i < arg.length; i++) {
                    sum += arg[i];
                }
                return sum;
            }

        }
        console.log(calculate('+', 3, 5, 5));
        console.log(calculate('*', 1, 5, 5, 2));