1.变量的优先级
先找本层的(本作用域)再逐级向外查找,例如:
var a=10;
function fn(){
var a=20;
console.log(a);//控制台打印20
}
console.log(a);//控制台打印10
因为都是找本级的变量,所以得到该答案
提升——参数——函数——变量
提升最低,最高的是变量,例如:
function fn(){
var a=10;
function a(){
return"111111111";
}
console.log(a);//控制台打印10
}
因为变量是最高级,所以打印变量那个a为10。
另外函数声明不看执行顺序的。
var a——局部a 2
window.a ——全局a 3
a——内部a也属于外部a 1
记住排序:先内部后外部。提升后(var a)不再属于内外部了,只属于内部了。如果碰到了局部a的情况,本属于内外部的情况只属于内部了。
2.垃圾回收机制
标记清除:最常用的垃圾回收机制,例如:
function fn(){
var a=“perfect”;
var a=“null”;
}
引用清除:最不常用的垃圾回收机制,例如:
var plus=document.getElementById(“plus”);
var count1=document.getElementById(“count”);
plus.οnclick=function(){
count1.count()+=1;
count1.count()-=1;
}
手动清除:把不用的变量或对象或函数赋值为null。
btn.οnclick=function(){
this.style.backgroundcolor=“red”;
this.style.backgroundcolor=null;
}
变量的优先级以及垃圾回收机制(JS)
最新推荐文章于 2022-05-07 11:34:02 发布