变量声明的问题
使用var声明变量
- 允许重复的变量声明
var a = 2; function print(){ console.log(a) } //假设这有1000行代码写第1001行的时候鬼知道第一行写的什么玩意儿 var a = 4; print();
- 变量提升:怪异的数据访问
if(Math.random()<0.5){
var a="abc";
console.log(a);
}
else{
console.log(a);
}
console.log(a);
//先声明一个变量a
//如果生成的随机数小于0.5a="abc" 输出a否则输出a
闭包问题
var div=document.getElementById("btn");
for(var i=1;i<=10;i++){
var btn=document.createElement("button");
btn.innerHTML="按钮"+i;
div.appendChild(btn);
btn.onclick=functionn(){
console.log(i);
}
}
- 全局变量挂载到全局对象:全局对象成员污染问题
var abc="123"
console.log(window.abc)
var console="abc"
console.log(console)
a