ES6之前存在的问题
1.变量提升与重复声明
console.log(a)
var a = 1
var a = 2
变量a的值为undefined,变量被提升
解决办法
console.log(a)
let a = 9
一.块级作用域:大括号之间的代码即是块级作用域,结合let使用,防止全局污染。
let 声明的变量不存在提升,不允许重复声明
let声明的变量不是全部变量,不管写在哪里
const声明的变量也是局部变量。
var声明的变量存在变量提升,允许重复声明
let,const存在块级作用域,在任何情况下都不是全局作用域
var let允许重新复制
const声明后必须赋值,不允许重复赋值
参数默认值
function fn(a,b,c = 0) {
console.log(a+b+c)
}
fn(5000,2000)
ES6之前写法
function fn(a,b,c = 0) {
b = b || 0 //ES6之前默认值的写法
console.log(a+b+c)
}
2.箭头函数
()=>{ }对匿名函数进行简化,不等于匿名函数
如果箭头函数函数体里面只有一行代码,并且是return一个值,可以简化
sort((a,b)=>{
a-b
})
3.模板字符串
` 模板字符串${ 表达式 }`
解决了字符串的拼接问题