Javascript变量范围详细解决方案

Javascript变量范围详细解决方案
变量的范围是变量的可见性,而生命周期(生存周期)则从另一个角度检查变量。

JS的变量范围分为全局变量和局部变量,它们被定义为局部变量,函数外的函数称为全局变量(外部函数称为全局变量)。这里讨论的前提是var所声明的显式变量。var未定义的变量默认为全局变量。当然,忽略var声明变量是不赞成的。
复制代码代码如下所示:
VaR的水珠= 4; / /函数声明全局变量
功能乐趣(){
var高度= 20;函数中的 var语句是一个局部变量。
重= 50;没有var语句的函数是一个全局变量。
}
(有趣);
警戒(重量);

没有一块范围JS,其中包含斜体,java,还有,在main方法中写下代码
复制代码代码如下所示:
公共静态空主(字符串)…args){
对于(int = i 0;i < 5;i + +){
}
{
int = 10;
}
int = 20;
System.out.println(我); / /我是不可见的,语法分析是编译时间错误
System.out.println(J); / / J是不可见的,语法分析是编译时间错误。
System.out.println(Z); / / Z可见输出20
}

但是如果它在js中
复制代码代码如下所示:
对于(var i = 0;i < 5;i + +){
}
var obj = {姓名:百合};
对于(OBJ var attr){
}
{
var j=10;
}
警报(i);输出4,没有阻塞范围
警报(ATTR); / /名称输出,无阻滞范围
警报(j);输出10,没有阻塞范围

这也说明了避免在全局范围内与for循环同时声明变量的问题,否则会造成全局命名范围的污染。

当然,让关键字声明变量(参见: / / HTTPS开发商Mozilla。org / / new_in_javascript_1.7 CN)提出了js1.7,只作用在for语句的范围。
复制代码代码如下所示:
对于(让i = 0;i < 5;i + +){

}
警报(i);运行时间错误,表明未定义

js1.7需要这样引用

PS:Firefox2 +实现js1.7
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部