标签: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