javascript变量提升
Posted shmily-代码君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript变量提升相关的知识,希望对你有一定的参考价值。
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();
以上是关于javascript变量提升的主要内容,如果未能解决你的问题,请参考以下文章