标签:作用域 创建 asc span blog 位置 写法 cti images
javascript变量提升
1,首先运行以下代码查看结果
var v=‘Hello World‘;
alert(v);
var v=‘Hello World‘;
(function(){
alert(v);
})()
var v=‘Hello World‘;
(function(){
alert(v);
var v=‘I love you‘;
})()
解析:javascript语言存在函数级作用域(只有函数才会创建新的作用域)。变量提升,顾名思义就是把变量提升到函数的top位置,但注意变量提升只是针对声明的提升,并不会对赋值就行提升,
故以上代码等价于:(由于v只声明未赋值,所以alert出underfined)
var v = “Hello World”;
(function() {
var v;
alert(v);
v="I love you";
}
二:函数提升
函数提升,顾名思义就是将整个函数提到前面去。在js中函数有两种写法:一:函数表达式;二:函数声明式;需要注意的是只有函数声明式才能被提升。
1,函数声明式(可以被提升)
function myTest(){
foo();
function foo(){
alert("我来自 foo");
}
}
myTest();
2,函数表达式(不能被提升,报错 foo is not a function)
function myTest(){
foo();
var foo =function foo(){
alert("我来自 foo");
}
}
myTest();
标签:作用域 创建 asc span blog 位置 写法 cti images
原文地址:http://www.cnblogs.com/shmily-code/p/7804580.html