Javascript:当编写for循环时,为什么打印最后一个索引号?
Javascript: When writing a for loop, why does it print the last index number?
在js解释器中编写一个简单的for循环时,我自动获取最后一个值即索引号(在本例中为I)。
js> for (var i=0; i<100; ++i) { numbers[i]=i+1; }
100
js> i
100
谁能解释一下为什么解释器是这样工作的?我没有明确要求它输出I的值。
很抱歉我的表述模棱两可,伙计们,但我真的不知道如何描述正在发生的事情。
javascript中的所有语句都有一个值,包括在循环结构中执行的块。一旦循环块被执行,返回最终值(如果没有操作,则返回undefined
)。隐式提供返回值"100"的语句是numbers[i] = i+1;
,因为i+1的最后一次迭代产生100,赋值操作返回被赋值的值。
console.log(hello = "World"); // outputs 'World'
我还将补充说,这是在您的代码上运行eval
的结果:
eval('numbers = []; for(var i = 0; i < 100; i++){ numbers[i] = i+1; }')
相关文章:
- 为什么这个JS代码打印未定义
- 为什么这个功能打印“;未定义的未定义的“;作为联系人名称,添加“新对象”
- 为什么控制台.log(true,' ')打印真“ ”
- 日期没有打印出来:为什么会这样
- 为什么当我单击打印按钮时@media打印选择器没有显示正确的格式
- 为什么只打印一次?请给我解决方案
- 两个javascript网络工作者连续打印输出-为什么不同时打印呢
- 为什么Javascript代码打印'未定义'即使变量被声明为全局变量
- 为什么它要将包含的文件中的所有注释打印到屏幕上
- 为什么这个 HTML 不会打印
- $(“#id”).html(var);不打印该值.为什么
- 为什么 javascript for loop 只打印最后一个元素
- 为什么 AJAX 函数未被调用,并且在调用函数时未打印警报
- PHP:为什么当我打印会话的内容时忽略了前导零
- 为什么以下设置超时会立即打印
- 为什么没有打印出嘶嘶声
- 使用数组处理 JavaScript 字符串 为什么它在控制台上打印“R”而不是“Z”
- 为什么我的 CSS 没有打印
- 为什么这些变量不在 html 视图中打印
- 为什么这个 JavaScript 代码在控制台上打印“未定义”