为什么类内嵌循环似乎遵循不同的赋值规则
Why do class embedded loops appear to follow different assignment rules?
好了,这是一个类,在构造函数中有一个六项数组
class forLoopProblem {
constructor() {
this.a = [5,8,7,4,6,18];
}
我想做的是使用数组的长度来限制
以下的for
循环中的迭代次数 iterate(ap1) {
for (i = 0; i <= this.a.length; i++) {
console.log(i);
}
}
}
var internalVar = new forLoopProblem();
不幸的是,internalVar.iterate()
产生一个异常,说明a
没有定义。
log() {
console.log(this.a.length);
console.log(this.a);
}
}
var internalVar = new forLoopProblem();
但是如果a
没有定义,那么为什么internalVar.log()
的行为如预期的那样,将6
与数组的内容一起打印到控制台?
起初我认为6
可能是一个字符串,需要在循环赋值之前转换为整数。所以我尝试了parseInt()
,但没有工作。无论如何,异常说变量没有定义,所以我不认为这是一个解析问题。
我甚至可以使用a
将初始迭代变量赋值为6,如下所示:
for (i = this.a.length; i <= 10; i++) {
产生6
, 7
, 8
, 9
和10
作为控制台输出。
那么限制器规范给出了什么?
适合我,尽管我必须在for循环中定义i
:
class forLoopProblem {
constructor() {
this.a = [5,8,7,4,6,18];
}
itterate(ap1) {
for (var i = 0; i <= this.a.length; i++) {
console.log(i);
}
}
}
var internalVar = new forLoopProblem();
internalVar.itterate(); //0, 1, 2, 3, 4, 5, 6
测试:
- Chrome - Works
- Firefox - Works
- 歌剧-作品
- IE10 -不工作
- Safari (Win8) -不工作
相关文章:
- Javascript变量赋值|
- 无法为打字稿字典赋值
- Javascript-根据赋值顺序,按键合并对象数组
- Javascript:应为赋值或函数调用,但实际看到的却是表达式
- 如何通过json对象数组为嵌套对象赋值
- 赋值后的回调函数
- ||(OR)运算符如何在赋值中工作
- 可以使用属性赋值实现多个函数
- 将ECMAScript 6析构函数赋值(ES2015)重构为旧版本的javascript
- 如何在javascript中为全局变量赋值
- Javascript:JSHint:应为赋值或函数调用,但实际看到的却是表达式
- JavaScript:在嵌套循环中为数组赋值
- 未设置变量的赋值| jQuery的作用是什么
- Javascript赋值运算符的奇怪行为
- onchange赋值的Javascript位置
- 我可以在javascript中的回调函数中为变量赋值吗
- 逻辑(JSint友好)等效于while循环中的此赋值
- 为数组元素的属性赋值将设置所有其他类似元素的属性
- 错误-应为赋值或函数调用,但实际看到的却是表达式
- 为什么类内嵌循环似乎遵循不同的赋值规则