作用域根据函数划分
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,一、一个for实例 var pscope3 = document.getElementById('scope3'); function scope3() { for
千家信息网最后更新 2025年12月02日作用域根据函数划分
一、一个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安全错误
数据库的锁怎样保障安全
网络安全信息道德文字
迈瑞软件开发要求
大专软件开发找工作
初中校园网络安全手抄报
斑马网络安全插画
学校学报查重数据库
云点播服务器 价格
数据库工程师笔试题目
计算机网络技术项目成果
中宏经济数据库热点专家
黎明杀机断开服务器可以重连
颐书写软件开发
网络安全 出版社
qq邮箱在服务器上搜索
延庆区综合网络技术服务质量保障
赫子哥服务器ip
数据库工程师和运维工程师
华为自动驾驶网络技术峰会
广西生鲜软件开发哪家专业
台州软件开发学习
济南互动安全文化展厅软件开发
服务器raid 有几种
哪里学网络安全
防范网络安全作品
煤矿信息网络安全演练
绘网络安全手抄报内容
中国使用的数据库
服务器回收哪家好
珠海直播教学软件开发
计算机数据库的安全性