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