You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS for循环内console.log语句无输出是什么原因?

循环无console输出的原因

你编写的代码如下:

var line = "Stands so high   ";

let position = -1;
for (; line[position] == " ";) {
  position--;
  console.log(position);
}

没有输出的核心原因非常明确:

  • JavaScript 的字符串索引规则是从0开始、从左向右正序计数,原生不支持负索引反向取字符的写法。当你传入负索引比如-1访问字符串时,返回值是undefined,不会像部分其他编程语言那样直接拿到字符串倒数第一位的字符。
  • 你写的for循环没有初始语句,第一次运行就会直接判断条件line[position] == " "。此时初始position值为-1,line[-1]是undefined,和空格" "不相等,循环条件直接判定为不成立,循环内部的position--、console.log(position)从来没有被执行过,自然不会产生任何输出。

如果你的需求是从字符串末尾往前遍历、统计尾部连续空格的数量,需要把初始position设置为字符串最后一位的合法索引,也就是line.length - 1,修正后的代码如下:

var line = "Stands so high   ";

let position = line.length - 1;
for (; line[position] == " ";) {
  position--;
  console.log(position);
}

运行这段代码就能正常在控制台打印每次递减后的position值了。

内容的提问来源于stack exchange,提问作者VISHMA PRATIM DAS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 06:24:16