块级作用域
- ES5之前因为if和for都没有块级作用域的概念,所以在很多时候,我们都必须借助function的作用域来解决应用外部变量的问题。
- ES6中,加入了let,let有if和for的块级作用域。
注意事项
- var声明变量时,作用域是整个函数;
- let声明变量时,作用域是块级作用域(大括号内的都是一个块级,比如if和for)
- const主要作用是将某个变量修饰为常量,不可以再次被赋值。
箭头函数
-
箭头函数与普通函数的区别
1)箭头函数没有this,函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
2)不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
3)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
4)不可以使用yield命令,因此箭头函数不能用作 Generator 函数。
5)普通function的声明在变量提升中是最高的,箭头函数没有函数提升。 -
箭头函数解决的问题
1)简化了写法
2)明确了this
对象字面量增强写法
- 属性增强写法
const name = 'zlm';
const age = 18;
const height = 1.88;
//ES5 写法
const obj = {
name: name,
age: age,
height: height
}
console.log(obj);
//ES6写法
const obj = {
name,
age,
height
}
- 函数的增强写法
//ES5 写法
const obj = {
run: function() {
},
eat: function() {
}
}
//ES6写法
const obj = {
run() {
},
eat() {
}
}