由于JavaScript没有块级作用域,因此其与其它语言有一些的不同,比如在C语言中,由花括号封闭的代码块都有自己的作用域,因而支持根据条件来定义变量。例如
if(true){
var color="blue";
}
alert(color); //"blue"
这里是在一个If语句中定义了变量color。如果在Java c中color会在If语句执行完毕后被销毁。但在JavaScript中,if语句的变量声明会将变量添加到当前的执行环境(在这里就是全局环境)中。在使用for语句是由其要牢记着一差异
for(var i=0; i<10;i++){
doSomething(i);
}
alert(i); //10
对于有块级作用域的语言来说,for语句初始化变量的表达式所定义的变量,只会存在于循环的环境之中。而对于JavaScript来说,由for语句创建的变量i即使在for循环执行结束后,也依旧存在于循环外部执行环境中。
附加:
使用var声明的变量会自动被添加到最接近的环境中。在函数内部,最接近的环境就是函数的局部环境;在with语句中,最接近的环境是函数环境。如果初始化变量是没有使用var声明,改变量会自动被添加到全局环境。
function add(num1,num2){
sum=num1+num2;
return sum;
}
var resutl(10,20);
alert(sum); //30
转载请注明原文地址: https://ju.6miu.com/read-1300404.html