标签:你不知道的javascript js变量提升 js函数提升 javascript提升
最近,在读《你不知道的JavaScript(上卷)》这本书,书中详细阐述了JavaScript众多重要但经常被大家忽略的点,在此强烈推荐!!!书中,第4章讲述了“提升”,从示例出发讲述了变量和函数提升的过程,纠正了自己以前错误的理解(相信好多人理解都是错误)!a = 2; var a ; console.log(a); //2示例2:
console.log(b); //undefined var b = 2;示例3:
var c; console.log(c); //undefined c = 2;示例4:
foo();
function foo(){
console.log(d); //undefined
var d = 2;
}示例5:bar(); //TypeError
var bar = function too(){
// ....
}示例6:aoo(); //TypeError
boo(); //ReferenceError
var aoo = function boo(){
// ...
}示例7:function foo(){
console.log(1);
}
foo(); //1
foo = function(){
console.log(2);
};示例8:foo(); //3
function foo(){
console.log(1);
}
var foo = function(){
console.log(2);
};
function foo(){
console.log(3);
}示例9:foo(); //b
var a = true;
if(a){
function foo(){ console.log("a"); }
}else{
function foo(){ console.log("b"); }
}2. RHS查询到一个变量,但你尝试对其不合理的操作(引用null或undefined类型中的属性),会抛出TypeError。
标签:你不知道的javascript js变量提升 js函数提升 javascript提升
原文地址:http://blog.csdn.net/ligang2585116/article/details/46271699