关键字 const

常量是一个不能被修改的变量。

变量可以被重写

常量重写会报错

关键字 let

JavaScript使用一对花括号表示代码块,花括号限定变量的作用域。
但是如果变量是在if/else语句块中创建的,那么变量的作用域不会受到该代码块的限制。

备注:花括号不能限制变量作用域范围的另外一个地方是在循环体中

if语句块中的变量topic重制了全局变量topic的值

通过使用let关键字,将变量的作用域限定在任意代码块中。
使用let关键字可以确保全局变量的值不受干扰。

模板字符串

JavaScript的任意返回值都可以被添加到模板字符串的${ }的内部。

默认参数

ES6中添加了对默认参数的支持,如果事件调用过程没有提供参数,系统将使用默认参数值。

默认参数并不局限于字符串,可以是任意类型。

箭头函数

ES6中的箭头函数是非常有用的特性,用户在不使用function关键字的情况下创建一个函数,并且用户通常还不需要使用return关键字。

普通函数

var lordify = function (firstname){
return `${firstname} of Canterbury`;
}
console.log(lordify("Dale"));
console.log(lordify("Daryle"));

箭头函数

var lordifyV2 = firstname => `${firstname} of Canterbury`
console.log(lordifyV2("Dale"));
console.log(lordifyV2("Daryle"));

备注:使用箭头函数创建方法,如果包含一个以上参数时,函数两边的圆括号是必不可少的。

ES6转译

并不是所有的浏览器都支持ES6,甚至有些根本不支持该规范。确保用户根据ES6规范编写的代码能正常工作的唯一办法是,在浏览器运行这些代码之前将它们转译符合ES5规范的代码。这个过程称为转译Babel是当前最流行的转译工具之一。

ES6的对象和数组

解构赋值

解构赋值允许用户将某个对象内的字段作用域本地化,摒弃可以声明那些值是将要使用的。

例如对象sandwich,包含4个字断,我们只想使用其中两个字段段值。将其中breadmeat属性的作用域本地化。

var sandwich = {
bread: "dutch crunch",
meat: "tuna",
cheese: "swiss",
toppings: ["lettuce","tomato","mustartd"]
}
var {bread,meat} = sandwich;
console.log(bread,meat); // dutch crunch tuna

解构传入的函数参数

var lordify = rgularPerson =>{
console.log(`${regularPerson.firstname} of Canterbury`);
}
var regularPerson = {
firstname: "Bill",
lastname: "Wilson"
}

lordify(regularPerson);

在对象之外解构我们需要使用的值

var lordify = ({firstname})=>{
console.log(`${firstname} of Canterbury`);
}
lordify(regularPerson);

这里的({firstname}) == var {firstname} = regularPerson,【解构赋值】知识点。

对象语意增强

通过语意增强,从全局作用域获取变量并将它转换为一个对象。

var name = "Tallc";
var elevation = 9378;
var funHike = {name,elevation};
console.log(funHike);