Skip to main content
 首页 » 编程设计

javaScript中模仿块级作用域

2022年07月19日41mate10pro

  学过 javascript 的都知道 javascript 里面没有块级作用域的概念,这就意味着在块语句中定义的变量,实际上是在包含函数中而非语句中创建的,看下面的例子:

function outPutNumber(count) { 
      for(var i = 0; i < count; i ++) { 
            alert(i); 
      } 
      alert(i);    //计数   
}

  上面的函数中定义了一个 for 循环,而变量 i 的初始值被设置为0。在 java、c++等语言中,变量 i 只在 for 循环中定义和使用,当 for 循环结束后 变量 i 就被销毁了,但是在 javascript 中,变量实际上实在函数 outPutNumber 中定义的,所以当 for 循环结束后 i 变量还存在,因此从变量 i 定义开始,就可以在函数内部随处访问它。

  如果我们想临时使用一些变量,在使用后便把变量销毁掉,我们可以使用匿名函数来模仿java、c++等语言中的块级作用域,看下面的例子:

function outPutNumber(count) { 
      (function() { 
            for(var i = 0; i < count; i ++) { 
                 alert(i); 
            } 
      })(); 
      alert(i);    //这里会提示 i is not defined 
}

本文参考链接:https://www.cnblogs.com/wgl1995/p/7526818.html