JavaScript重难点解析1(数据类型)
var、let、const区别:
- var是函数作用域(一个函数内有效),而let和const是块作用域(一个大括号内有效)
if (true){
let girl = '小明'
}
console.log(girl) //报错
- let和const不存在变量提升。
console.log(song) //报错
console.log() //报错
var name = "莫文蔚"
let song = '盛夏的果实'
- let和const不可重复定义。
let a = '123'
let a = '456' //报错
通过let可以解决循环绑定事件的问题。
for(let i = 0;i<items.length;i++){
items[i].onclick = function(){
//修改当前元素的背景颜色
// this.style.background = 'pink'
items[i].style.background = 'pink' //代码生效,定义的变量只在{}内有效,不受异步函数影响 ,如果为var则报错,具体原因参考js异步问题
}
}
//还不懂可以把上面代码理解为如下顺序执行的三个代码块:
{
let i = 0
items[i].onclick = function(){
//修改当前元素的背景颜色
// this.style.background = 'pink'
items[i].style.background =