javascript的变量声明和函数声明提升
2016-08-11 11:47
666 查看
感谢原文作者 看了你的文章 真的一下子就明白了 简单明了 谢谢 原文地址http://blog.csdn.net/u012655237/article/details/51512029
要理解javascript的变量声明和函数声明的提升,重要的是理解浏览器引擎对javascript代码的处理过程:包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理。如:
var a=2;
var b=5;
其处理过程是,先进行变量声明
var a;
var b;
再进行变量赋值
a=2;
b=5;
1.变量声明提升
例子1:
function test(){
a=2;
var a;
console.log(a); //2
}
其处理过程是:
function test(){
var a;
a=2;
console.log(a);
}
例子2:
function test(){
console.log(a); //undefined
var a=2;
}
其处理过程是:
function test(){
var a;
console.log(a);
a=2;
}
2.函数声明提升
例子1:
函数声明的提升优先级大于变量声明的提升
foo(); //1
var foo;
function foo(){
console.log(1);
}
foo=function(){
console.log(2);
}
其处理过程:
function foo(){
console.log(1);
}
var foo; //并不执行,重复的声明
foo();
foo=function(){
console.log(2);
}
例子2:
函数表达式不会被提升
foo(); //TypeError
bar(); //ReferenceError
var foo=function bar(){
//……
}
其处理过程是
var foo;
foo();
bar();
foo=function bar(){
//……
};
要理解javascript的变量声明和函数声明的提升,重要的是理解浏览器引擎对javascript代码的处理过程:包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理。如:
var a=2;
var b=5;
其处理过程是,先进行变量声明
var a;
var b;
再进行变量赋值
a=2;
b=5;
1.变量声明提升
例子1:
function test(){
a=2;
var a;
console.log(a); //2
}
其处理过程是:
function test(){
var a;
a=2;
console.log(a);
}
例子2:
function test(){
console.log(a); //undefined
var a=2;
}
其处理过程是:
function test(){
var a;
console.log(a);
a=2;
}
2.函数声明提升
例子1:
函数声明的提升优先级大于变量声明的提升
foo(); //1
var foo;
function foo(){
console.log(1);
}
foo=function(){
console.log(2);
}
其处理过程:
function foo(){
console.log(1);
}
var foo; //并不执行,重复的声明
foo();
foo=function(){
console.log(2);
}
例子2:
函数表达式不会被提升
foo(); //TypeError
bar(); //ReferenceError
var foo=function bar(){
//……
}
其处理过程是
var foo;
foo();
bar();
foo=function bar(){
//……
};
相关文章推荐
- javascript的变量声明和函数声明提升
- javascript的变量声明和函数声明提升
- JavaScript中变量和函数声明的提升
- JavaScript 函数总体概述(函数声明/参数传递/返回值/加载/变量和作用域/变量声明提升/匿名函数/回调函数)
- javascript的变量声明和函数声明提升
- JavaScript机制:变量&函数声明提升的那些事
- javascript的变量声明和函数声明提升
- javascript的变量声明和函数声明提升
- javascript的变量声明和函数声明提升
- javascript的变量声明和函数声明提升
- javascript的变量声明和函数声明提升
- javascript的变量声明和函数声明提升
- 浅谈JavaScript中变量和函数声明的提升
- JavaScript中变量和函数声明的提升
- JavaScript中Hoisting详解 (变量提升与函数声明提升)
- javascript的变量声明和函数声明提升
- javascript中的变量提升和函数声明提升
- JavaScript中的作用域与函数和变量声明的提升
- javascript的变量声明和函数声明提升
- javascript的变量声明和函数声明提升