JavaScript语句块问题
来源:互联网 发布:局域网 文件复制软件 编辑:程序博客网 时间:2024/05/21 08:18
JavaScript不存在语句块的概念,与传统的java和C++不同。例如
function outputNumbers(count){
for(var i=0;i<count;i++){
alert(i);
}
alert("i= "+i);//输出i=4;
}
outputNumbers(4);//调用上面定义的函数
在上面例子中变量i是在循环语句块中声明的,Java中在循环体为该变量将会被销毁,但在javascript中该变量不会销毁。这是因为javascript不存在块的概念,只有函数的执行上下文的概念。在for中定义的i将会被认为在outputNumbers的执行上下文中,所以 alert("i= "+i);会输出i=4;
如果想要实现类Java中的块的概念,可以利用闭包(closure)来实现,如:
function outputNumbers(count){
(function(){
for(var i=0;i<count;i++){
alert(i);
}
})();
alert(i);//此句将报错
}
outputNumbers(2);
该实现方式是利用匿名函数闭包的概念,利用函数表达式后跟括号来实现。但不能用函数定义后跟括号方式来实现。
- JavaScript语句块问题
- JavaScript 语句、注释和代码块
- 【学习笔记】JavaScript编码规范-语句块
- JavaScript 语句、注释和代码块
- try-finnaly 语句块 return 问题
- 语句或语句块中的闭包问题
- 块语句
- 语句块
- if 语句不使用代码块引起的问题
- if 语句不使用代码块引起的问题
- Try、finally语句块内 有 return 的注意问题
- 关机static{}语句块的执行问题详解
- JavaScript循环语句的性能问题[旧]
- JavaScript循环语句的性能问题
- JavaScript条件语句的性能问题
- 表达式、语句和块
- static语句块
- static{}语句块详解
- Informix存储过程 详解
- kmalloc
- 前端必读:浏览器内部工作原理
- Tomcat,apache,web服务器,servlet,jsp
- 全卸载Oracle10g 方法
- JavaScript语句块问题
- java 多线程 与线程池
- 服务器系统性能瓶颈和优化
- 使用NetBackup进行oracle备份和恢复
- 模板方法模式
- 如何判断计算机是否在同一网段?
- 学生时代做的一个非常低级的卡拉OK播放器
- 使用UE 正则表达式 查找siebel log文件 sql耗时较长的语句
- HDOJ2000、2001、2002、2003、2004