千家信息网

作用域根据函数划分

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,一、一个for实例 var pscope3 = document.getElementById('scope3'); function scope3() { for
千家信息网最后更新 2026年11月01日作用域根据函数划分

一、一个for实例

     var pscope3 = document.getElementById('scope3');        function scope3() {            for(var i=0; i<10; i++){                            }            echo(pscope3,  i);        }        scope3();

1、函数在java、C#等语言中,变量i只会在for循环语句中有定义,循环结束,i也就被销毁了。但在JavaScript中,变量i是定义在scope3()活动对象中的,因此在它定义开始,就可以在函数内部访问它。

2、打印出的i为"10"。

3、函数scope3等效于下面的代码:

     function scope3() {            var i;            for(i=0; i<10; i++){                            }            echo(pscope3,  i);        }

二、私有作用域的匿名函数

     function anonymous() {            var position = 'in anonymous';            (function(){                for(var i=0; i<10; i++){                                }                echo(pscope3, position);//打印显示"in anonymous"            })();            //pscope3[xss_clean] += i;//报错        }        anonymous();

1、匿名函数可以用来模仿块级作用域,避免上面的那个问题。

2、在for循环外部插入了一个私有作用域。在匿名函数中定义的任何变量,新航道托福都会在执行结束时被销毁。

3、上面的那句注释掉的话,取消注释的话,就会显示错误信息:"ReferenceError: i is not defined"。

4、作用域的关系大致如下:


5、position是定义在anonymous函数中的,但可以在匿名函数中打印出来,因为anonymous的作用域包住了匿名函数,在匿名函数中找不到position定义,就往外找。

三、try语句catch部分的特殊情况

     function capture() {            var ex = 'in capture';            try{                  i;            }catch(ex){                var position= 'in catch';                echo(pscope3, ex); //ReferenceError: i is not defined                var ex = 'is catching';                echo(pscope3, position);//in catch                echo(pscope3, ex);//is catching            }            echo(pscope3, position);//in catch            echo(pscope3, ex); //in capture 不是catch中赋的值            echo(pscope3, window.ex); //undefined        }        capture();

1、catch的一个参数ex与capture函数下的局部变量ex同名。

2、catch中先打印ex,是错误信息,然后赋值为"is catching",打印出来,但很奇怪,catch外面打印的ex是"in capture",并不是里面覆盖的值。

3、position在catch中定义,但是可以在catch的外面打印出来。

4、window.ex输出的是undefined,也就是说ex不是全局的,因此可以推出catch后面的大括号是普通语句块的性质。

5、ex的性质可以视为唯一一个把catch语句块当做块作用域的变量,是catch语句块的局部变量。


函数 作用 变量 语句 面的 循环 信息 局部 性质 注释 错误 私有 普通 特殊 也就是 也就是说 代码 全局 参数 实例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 江苏根荣互联网科技 互联网科技公司的优势 猪兼强互联网科技 贷财互联网科技 顺玮阁互联网科技 互联网科技美容 联恩商钥互联网科技有限公司 互联网科技生活的内容 富国互联网科技创新基金 互联网企业和科技型企业 广州恒生互联网科技有限 互联网科技与管理 华夏互联网科技业 允成互联网科技有限公司融资 工业互联网等科技实现智能化赋能 无锡工业互联网科技有限公司 北京市互联网新科技 广州百诚互联网科技有限公司官网 吉林省码上互联网科技电话 武汉亿视互联网科技有限公司 广州百单互联网科技有限公司 科技信息互联网 互联网 卓越科技 互联网科技圈年度人物 电子商务与互联网科技的关系 城市宝互联网科技有限公司 南京一网一红互联网科技有限公司 互联网金融运营模式中的金融科技 互联网时代高科技布局 小牛互联网科技有限公司地址
0