ES6
1.块级作用域
let 声明的变量,不存在变量声明提升(进入暂时性的死区,提升后不允许访问)
let 声明的变量不允许重复声明
大括号之间的语句块就是块级作用域,例如:if、while、for... 块级作用域下,let和const声明的属于局部的,只能再当前作用域访问
let 和 const 即使再全局作用域下声明也不是全局的
练习:计算1~100之间所有整数的和,使用let 声明变量
let sum = 0;
for(let i = 1; i <= 100; i++) {
sum+=i;
}
console.log(sum);
2.参数增强
可以给参数直接设置默认值
function add(a,b,c=0) {
//ES6 之前的写法
b = b || 0
}
add(5000)
3.箭头函数
简化了匿名函数的写法,不等价于匿名函数
( )=>{ }
sort((a,b)=>{
return a-b
})
如果箭头函数的函数体中只有一行代码,并且是return形式,可以进一步简化
sort( (a,b)=>a-b )
练习:使用匿名函数创建函数getAvg,传递任意3个数字,返回平均值;使用箭头函数代替匿名函数。
let getAvg = (a,b,c)=>(a+b+c)/3
console.log(getAvg(5,4,1));
4.模板字符串
简化了字符串的拼接,要拼接的部分放入到${}
`反引号之间的字符串就是模板字符串 ${JS 表达式}`
|
练习:假设从后端获取了一条商品数据,格式为对象,包含的属性有编号,标题,价格,是否在售;打印出以下格式
编号:xxx
标题:xxx
价格:xxx.00元
是否在售:是/否
let a = {
id : 198,
title : '大雪糕',
price : 12,
is_OnSale : 1
}
console.log(`
编号:${a.id}
标题:${a.title}
价格:${a.price.toFixed(2)}元
是否在售:${a.is_OnSale? '是' : '否'}`)