标签:for date test fun acl ret console 赋值 lob
1:局部变量的优先级要高于同名的全局变量
var scope = "global" function checkscope(){ var scope= "loacl"; return scope; } checkscope //=>"loacl"
2:函数声明提前
<script>
function test(o) {
var i=0;
if(typeof o == "object"){
var j=0;
for(var k=0;k<10;k++){
console.log("k1:"+k); //0~9
}
console.log("k2:"+k); //10
}
console.log("j:"+j); //0
}
var time = new Date();
test(time)
</script>
<script>
var scope = "global";
function f() {
console.log(scope); //undefined
var scope = "loacl";
console.log(scope) //loacl
}
f();
</script>
你可能会误认为函数中的第一行会输出“global”,因为代码还没有执行到var语句声明局部变量的地方。其实不然,由于函数作用域的特性,局部变量在整个函数体始终是有定义的,也就是谁,在函数体内局部变量遮盖了同名全局变量。尽管如此,只有在程序执行到var语句的时候,局部变量才会被真正赋值。
标签:for date test fun acl ret console 赋值 lob
原文地址:http://www.cnblogs.com/QianBoy/p/7586655.html