JavaScript 预解析的4种实现方法解析
预解析:在当前作用域下,js运行之前,会把带有var和function关键字声明的变量先声明,并在内存中安排好。然后从上至下解析js语句。而且function的声明优先于var声明。
不多说,,直接上代码
正规写法:
varnum=10;
fun();
functionfun(){
console.log(num);//undefined
varnum=20;}
预解析里:先将变量和函数提前,如下:
varnum;
functionfun(){
varnum;
console.log(num);//undefined
num=20;
}
num=10;
fun();
第二种
varnum=10;
functiondn(){
console.log(num);//undefined
varnum=20;
console.log(num);//20
}
dn();
//相当于以下代码
varnum;
functiondn(){
varnum;
console.log(num);
num=20;
console.log(num);
}
num=10;
dn();
第三种
vara=18;
ss();
functionss(){
varb=9;
console.log(a);//undefined
console.log(b);//9
vara='123';
}
//相当于以下代码
vara;
functionss(){
varb;
vara;
b=9;
console.log(a);
console.log(b);
a='123';
}
a=18;
ss();
第四种
aa();
console.log(c1);//9
console.log(b1);//9
console.log(a1);//报错
functionaa(){
vara1=b1=c1=9;
console.log(a1);//9
console.log(b1);//9
console.log(c1);//9
}
//相当于
functionaa(){
vara1=b1=c1=9;//相当于vara=9;b=9,c=9
vara1;
a1=b1=c1=9;
console.log(a1);
console.log(b1);
console.log(c1)
}
aa();
console.log(c1);
console.log(b1);
console.log(a1);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。