1.ES6
ECMA
ECMAScript ES 标准规范
ES6 第6套标准规范
ES2021 ES2020 ES2019
(1)块级作用域
let声明的变量不存在变量提升,不允许重复声明
所有大括号之间的语句块都是在块级作用域下,里边用let、const声明的是局部的,不允许被外部访问
面试题:var、let、const三者的区别? var声明的变量存在变量提升,允许重复声明,只有在函数内声明才是局部变量,不存在块级作用域 let声明的变量不存在变量提升,不允许重复声明 const声明的常量,声明后必须赋值,不允许重新赋值 let、const在函数中和在块级作用域下都是局部的,存在块级作用域 let、const在全局作用域声明的也不是全局 var在全局作用域声明的是全局 |
(2)参数增强
可以给参数设置默认值
function add(a,b,c=0){ b=b||0; //es6之前设置默认值的方式 } add(8000,2000); 如果不提供实参,就会使用默认值0 |
(3)箭头函数
简化了匿名函数的写法,不等价于匿名函数
()=>{}
sort( (a,b)=>{ return a-b; } ) |
如果箭头函数的函数体中只有一行代码,并且是return形式,可以进一步简化
sort( (a,b)=>a-b )
练习:使用函数表达式创建函数(赋值)getAvg,传递任意3个数字,返回平均值。
var getAvg=function(a,b,c){
return (a+b+c)/3;
}
console.log(getAvg(32,43,54))
//以上代码可简写为:
var getAvg=(a,b,c)=>(a+b+c)/3;
console.log(getAvg(32,43,54))
(4)模板字符串
简化之前的字符串拼接
` 反引号之间的字符串就是模板字符串 ${JS表达式} ` |