javascript变量作用域预解析
程序员文章站
2022-03-18 19:15:03
...
javascript当中预解析比较坑的地方;
1.javascript解析代码的时候,会分为两个部分,第一个部分为预解析,第二个部分为开始从头到尾执行代码。
预解析三点:
- 所有声明为var的变量并且赋值,会将var 变量名提前到作用域最上面。
console.log(c);
var c=0;
转换为
var c;
console.log(c);
c=0;
只声明为定义,所以输出结果为undefinded
- 所有声明为function函数的命名函数,会将命名函数提前到调用它的函数之前
c();
function c(){
console.log("函数里面的代码");
}
转换为
function c(){
console.log("函数里面的代码");
}
c();
3.如果同时有var变量和function函数,则var变量提升在function函数上面
console.log(c);
var c=0;
function c(){
console,log("c里面的函数");
转换为
var c;
function c(){
console.log("c里面的函数");
}
console.log(c);
c=0;