数码资讯
对Javascript变量作用域的访问
萧边认为,这个问题是理解Javascript的范围很有帮助,所以我梳理出来,希望能帮助到别人。 首先,看下面的问题: var arr = { 1, 2, 3 }; 对于(var i = 0,J;J = ARR {我+ };){ console.log(J); } console.log(' ----
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
萧边认为,这个问题是理解Javascript的范围很有帮助,所以我梳理出来,希望能帮助到别人。
首先,看下面的问题:
var arr = { 1, 2, 3 };
对于(var i = 0,J;J = ARR {我+ };){
console.log(J);
}
console.log(' ---------);
console.log(我);
console.log(' ---------);
Console.log (J);
console.log(' ---------);
在问题解决之前,我们首先回顾Javascript中可变域的知识。
全局变量(全局变量)
全局变量是一个可以在任何地方访问的变量,并且有两个实例。
声明外部函数,是否使用var关键字
在函数中,声明不使用var关键字,语句语句必须在执行前执行。
局部变量(局部)
只能在声明的函数中访问局部变量。
在函数中声明,使用var关键字
两点注意的地方
先看代码:
警报(i);未定义的输出
对于(var i = 0;i < 1;i + +){ };
警报(i);输出1
Javascript中没有语句范围。句子中定义的变量将扩散到语句的外部。在这个例子中,我在for语句中声明,但是可以在for语句之外访问它。
我可以在for语句之前访问,但现在没有分配它。
开始我们的问题
在使用i之后添加了++:
第一次执行,J = ARR { 0 },然后我= 1,console.log(J)输出1
第二执行,J = ARR { 1 },然后我= 2,ocnsole.log(J)输出2
第三执行,J = ARR { 2 },然后我= 3,ocnsole.log(J)输出3
第四次(不符合条件),J = ARR { 3 }是未定义的,那么我= 4,ocnsole.log(J)不输出,退出for循环
在for语句执行的console.log(我)输出4从上面的分析,和console.log(J)输出定义
最终输出结果如下:
二
—
—
未定义
—
鉴于以上分析和结果,我们必须把一切都弄清楚,然后再出发。
把问题改成问题
标题:
var arr = { 1, 2, 3 };
对于(var i = 0,J;J = ARR { +我};){
console.log(J);
}
console.log(' ---------);
console.log(我);
console.log(' ---------);
console.log(J);
console.log(' ---------);
答案uff1a
二
三
—
三
—
未定义
—
把问题改成两个问题
标题:
函数xxx(){
var arr = { 1, 2, 3 };
对于(var i = 0,J;J = ARR {我+ };){
console.log(J);
}
}
(XXX);
console.log(' ---------);
console.log(我);
console.log(' ---------);
console.log(J);
console.log(' ---------);
答案uff1a
一
二
三
—
虚假报道:Uncaught ReferenceError:我没有定义
希望大家能分享这个,希望了解javascript的帮助范围。
首先,看下面的问题:
var arr = { 1, 2, 3 };
对于(var i = 0,J;J = ARR {我+ };){
console.log(J);
}
console.log(' ---------);
console.log(我);
console.log(' ---------);
Console.log (J);
console.log(' ---------);
在问题解决之前,我们首先回顾Javascript中可变域的知识。
全局变量(全局变量)
全局变量是一个可以在任何地方访问的变量,并且有两个实例。
声明外部函数,是否使用var关键字
在函数中,声明不使用var关键字,语句语句必须在执行前执行。
局部变量(局部)
只能在声明的函数中访问局部变量。
在函数中声明,使用var关键字
两点注意的地方
先看代码:
警报(i);未定义的输出
对于(var i = 0;i < 1;i + +){ };
警报(i);输出1
Javascript中没有语句范围。句子中定义的变量将扩散到语句的外部。在这个例子中,我在for语句中声明,但是可以在for语句之外访问它。
我可以在for语句之前访问,但现在没有分配它。
开始我们的问题
在使用i之后添加了++:
第一次执行,J = ARR { 0 },然后我= 1,console.log(J)输出1
第二执行,J = ARR { 1 },然后我= 2,ocnsole.log(J)输出2
第三执行,J = ARR { 2 },然后我= 3,ocnsole.log(J)输出3
第四次(不符合条件),J = ARR { 3 }是未定义的,那么我= 4,ocnsole.log(J)不输出,退出for循环
在for语句执行的console.log(我)输出4从上面的分析,和console.log(J)输出定义
最终输出结果如下:
二
—
—
未定义
—
鉴于以上分析和结果,我们必须把一切都弄清楚,然后再出发。
把问题改成问题
标题:
var arr = { 1, 2, 3 };
对于(var i = 0,J;J = ARR { +我};){
console.log(J);
}
console.log(' ---------);
console.log(我);
console.log(' ---------);
console.log(J);
console.log(' ---------);
答案uff1a
二
三
—
三
—
未定义
—
把问题改成两个问题
标题:
函数xxx(){
var arr = { 1, 2, 3 };
对于(var i = 0,J;J = ARR {我+ };){
console.log(J);
}
}
(XXX);
console.log(' ---------);
console.log(我);
console.log(' ---------);
console.log(J);
console.log(' ---------);
答案uff1a
一
二
三
—
虚假报道:Uncaught ReferenceError:我没有定义
希望大家能分享这个,希望了解javascript的帮助范围。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。