标签:style blog io ar color sp java for strong
javascript不像java等其他强类型语句,没有块级作用域(括号内的代码都有自己的作用域,变量在声明它们的代码段之外不可见)一说,但有自己的独特地方,即函数作用域。
函数作用域:变量在声明它们的函数体内以及这个函数体的任意内部函数体内是有定义的。
如下所示代码,在不同位置定义了变量i、j和k,它们都在同一个作用域内,即在函数体内均是有定义的。
function test(){ var i=0; //i在整个函数体内均有定义 if(true){ var j=0; //j在整个函数体内均有定义 for(var k=0;k<10;k++){ //k在整个函数体内均有定义 console.log(k); //输出0~9 } console.log(k); //输出10 } console.log(j); //输出0 } test();
声明提前:变量的声明(不包括赋值)都被提前至函数体顶部。
注意:声明提前是在javascript引擎的预编译时进行的,是在代码开始运行之前。
下面是有关代码及注释:
var i=1; function test(){ console.log(i); //输出undefined var i=2; console.log(i); //输出2 } test();
上述代码可等价如下所示:
var i=1; function test(){ var i; console.log(i); //输出undefined i=2; console.log(i); //输出2 } test();
标签:style blog io ar color sp java for strong
原文地址:http://www.cnblogs.com/aaron-shu/p/4121915.html