ES6
(1)块级作用域
let a = 1;
let 声明的变量不存在提升,在同一个作用域下,不允许重复声明同一个变量
大括号之间的语句块就是一个块级作用域,例如:if、else、while、do-while、for…在块级作用域下,let和const声明的都是局部的,无法被块级作用域以外访问到。
Var let const三个区别
var 声明的变量存在提升,在同一个作用域下可以重复声明同一个变量
let 声明的变量不存在提升,在同一个作用域下不允许重复声明同一个变量,存在块级作用域,即使在全局作用域下let声明的变量也不是全局的。
const 声明的时候必须赋值,不允许重新赋值,存在块级作用域。在全局作用域下const声明的变量也不是全局的。
例如:计算1~100之间所有整数的和,使用let声明变量。
let sum = 0;
for (let i = 1; i <= 100; i++){
sum +=i;
}
console.log(sum);
(2)参数增强
可以给函数的参数设置为默认值
function fn(a,b,c = 0){
//c = c || 0;//es6之前的默认设置
}
fn(10000,2000);
(3)箭头函数
() => { }
简化了匿名函数的写法,不等价于匿名函数
sort((a,b) =>{
return a-b;
});
如果箭头函数的函数体中只有一行代码并且是return形式,可以简化为
sort((a,b)=>a-b);
(4)模块字符串
解决了字符串的拼接问题
` 模板字符串 ${JS表达式} `
var emp = {
id : 2,
ename : '中山',
sex : 1,
salary : 1000
};
console.log(`
编号 : ${emp.id}
姓名 : ${emp.ename}
性别 : ${emp.sex?'男': '女'}
工资 : ${emp.salary.toFixed(2)}元
`);