关于注释掉废话代码的疑问

function y(t) {
    var r=8;    
    for (var e = Array(), n = (1 << r) - 1, i = 0; i < t.length * r; i += r)
        console.log('r:',r)
        e[i >> 5] |= (t.charCodeAt(i / r) & n) << i % 32;
    return e
}
var t="123456"
console.log(y(t))

运行结果:
r: 8
r: 8
r: 8
r: 8
r: 8
r: 8
[ <1 empty item>, 0 ]
但是如果将第4行代码 console.log('r:',r) 注释掉,得结果:
[ 875770417, 13877 ]
为什么注释掉一句废话,效果如此不同?

阅读 2k
2 个回答

image.png

这样去掉 console.log('r:',r)
image.png

function y(t) {
    var r=8;    
    for (var e = Array(), n = (1 << r) - 1, i = 0; i < t.length * r; i += r){}
    e[i >> 5] |= (t.charCodeAt(i / r) & n) << i % 32;
    return e
}
var t="123456"
console.log(y(t))

加个括号 {} 。现在,for 循环只循环了 console

image.png

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