ES6语法补充
1.let关键字
var没有变量提升 let变量的声明,会提升到当前作用域的顶端
console.log(city)
let city ="北京"
//打印:北京
console.log(city)
var city ="北京"
//打印:undefined
2.模板字符串
使用包裹文本(1的左边那个键)
在需要替换的位置使用${}占位,并填入内容即可
let name = '花姐'
let food = '西蓝花'
let city = '深圳'
let temStr = `我的名字是:${name}我喜欢的东西是:${food}我所在的城市是:${city}`
console.log(temStr)
//'我的名字是:花姐我喜欢的东西是:西蓝花 我所在的城市是:深圳'
3.对象简化赋值
//如果属性名和变量名相同,可以简写
let name ="小黑"
let city = "深圳"
//方法可以省略function关键字
let person ={
name, // name:name
city, // city:city
//sayHello:function(){
//console.log("你好吗!")
}
sayHello(){
console.log("你好吗")
}
}
console.log(person)
person.sayHello()
4.箭头函数
function省略掉,替换为 =>
参数只有一个时,可以省略()
函数体只有一行时,可以省略{ }
函数体只有一行时,并且有返回值时,如果省略了{ },必须省略return
5.箭头函数的this
创建时this是谁,运行时候this就是谁
let person ={
name: '花姐',
city: "北京"
sayHello(){
console.log(this)
}
}
person.sayHi()
//this指向当前person对象
//输出{name: '花姐',city: "北京"}
let person ={
name: '花姐',
city: "北京"
sayHello(){
setTimeout(function(){
console.log(this)
},100)
}
}
//setTimeout虽然是直接调用的,等同于调用window.setTimeout
//打印 window对象
let person ={
name: '花姐',
city: "北京"
sayHello(){
console.log(this) //person对象
setTimeout(()=>console.log(this),100)//person对象
}
}
//创建时this是谁,运行时候this就是谁
6.扩展运算符…
Math.min()中不可以直接放数组,引入扩展运算符相当于把[100,30,50,80]变成(100,30,50,80)
注:es5写法 Math.min.apply(null,a)