ES6的一些小小知识点:
(1)块级作用域
let a = 1;
let声明的变量不存在提升,在同一个作用域下,不允许重复声明一个变量
{ }之间的语句块就是一个块级作用域,例如:if else while do-while for 等
在块级作用域下,let和const声明的都是局部的,无法被块级作用域以外的访问到
问题:var let const三个的区别:
var声明的变量存在提升,在同一个作用域下可以重复声明;
let声明的变量不存在提升,在同一个作用域下不允许重复声明同一个变量,存在块级作用域,即 使在全局作用域下,let声明的变量也不是全局的;
const声明的时候必须赋值,不允许重新赋值,存在块级作用域;即使在全局作用域下,const声 明的常量也不是全局
(2)参数增强
可以给函数的参数设置默认值:function fn(a,b,c = 0){
//c = c || 0 es6之前的默认值设置
}
fn(1000,2000)//没有出现的参数就会使用默认值
(3)箭头函数
function(){} ----- ()=>{}//简化匿名函数,简化了匿名函数的写法,不等价于匿名函数
sort((a,b)) => {return a - b;})//匿名函数简化为箭头函数
箭头函数的函数体只有一行代码,并且是return形式的,可以简化为sort((a,b) => a-b));
(4)模板字符串
解决了字符串拼接问题
`模板字符串 ${JS表达式}`
例如:let emp = {eid:001,ename:'张子枫',sex:'女',salary:1000};
console.log(
编号:${emp.eid}
姓名:${emp.ename}
性别:${emp.sex}
工资:${emp.salary}
);