JS for循环有关变量类型的问题

<script>
    var num = 100;
    for (var i=num-5;i<num+5;i++){
        // console.log(typeof(i));
        console.log("i");
    }
</script>

这段代码控制台会输出10次i;

<script>
    var num = "100";
    for (var i=num-5;i<num+5;i++){
        // console.log(typeof(i));
        console.log("i");
    }
</script>

这段代码会输出几百次i;是为什么??区别仅仅是赋值给变量num的是字符串或数字

阅读 3.9k
5 个回答

因为"100" - 5是95,而"100" + 5是1005

你真逗!^_^

num+5

1005

因为"100" + 5 = "1005",强制类型转换后你的代码实际上是:

...
for(var i = 95; i < 1005; i++){
...

"100" - 5是95,而"100" + 5是1005

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题