1. let、const
用 let 代替 var 来声明变量,新增 const 声明常量。
- 在ES6之前,JS 只有全局作用域和函数内的局部作用域。let、const 声明的变量、常量都只在 let、const 命令所在的代码块内有效,形成块级作用域。
{
var x = 1;
let y = 2;
const z = 3;
}
// 这里可以使用 x 变量,但是不能使用 y变量和 z 常量
- var 存在声明提升,let、const 没有声明提升。
console.log(a) // undefined
console.log(b) // 报错:b is not defined
console.log(c) // 报错:c is not defined
var a = 1
let b = 2
const c = 3
- const 声明时必须进行初始化,且初始化后基本数据类型的值后不能再更改,引用数据类型的话可以更改值,不能更改引用地址。
2. 模板字符串
ES5拼接字符串写法:
let str = '你好,我叫'+ name +',今年'+ age + '岁。'
ES6模板字符串写法:
let str = `你好,我叫${name},今年${age}岁`
3. 箭头函数
省去 function 关键字,只需要=>
- 箭头函数只能用赋值式写法,不能用声明式写法。
- 如果函数只有一个参数,可以省略圆括号;如果函数没有参数,就用空的圆括号。
- 如果函数内部只有一条语句,可以不加花括号;如果这一条是 return 语句,还可以省去 return 关键字。
- 箭头函数默认绑定外层 this;不能用call方法修改里面的this。
let fn1 = (a,b)=>{
return a+b
}
let fn2 = a => a+2
// 等同于下面的两个函数
let fn1 = function(a,b){
return a+b
}
let fn2 = function(a){
return a+2
}