学过 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
}

最新文章

  1. Android保持屏幕常亮的方法
  2. Linux(CentOS)下安装git
  3. Mac OS X 10.9 Mavericks安装后,Xcode调试时模拟器黑屏的处理方法
  4. sqlServer 存储过程执行遇到的问题及解决方案
  5. VS2010远程调试
  6. 5ci
  7. Linq to SQL -- Join
  8. hadoop的hdfs中的javaAPI操作
  9. android_双击退出
  10. BTrace使用简介
  11. python windows环境下安装
  12. 【一】、搭建Hadoop环境----本地、伪分布式
  13. 静态HTML总结
  14. 两个docker容器互连时,提示no route to host错误的问题
  15. Install OpenCV-Python in Ubuntu
  16. 树莓派进阶之路 (020) - 基于24位AD转换模块HX711的重量称量实验
  17. 面向对象OO第15次作业总结
  18. PHP常用必备函数
  19. 【C/C++】Linux C,关于刷新printf输出问题
  20. python -c 处理shell字符串

热门文章

  1. 使用HashOperations操作redis
  2. js中迭代元素特性与DOM中的DocumentFragment类型 笔记
  3. ArcGIS API for javascript中搜索框的使用问题
  4. 关于debian配置的问题汇总
  5. ArcGis融合小多边形到相邻多边形
  6. Shiro 的 HelloWorld
  7. [LOJ #2538][PKUWC 2018]Slay the Spire
  8. Splunk学习与实践
  9. [学习笔记]可持久化数据结构——数组、并查集、平衡树、Trie树
  10. Ubuntu使用vim编辑器时出现上下左右键变成ABCD