shpasspass
V2EX  ›  问与答

js 中, for 循环里的执行条件有 2 个,浏览器会先判断谁?

  •  
  •   shpasspass · Jul 19, 2016 · 5906 views
    This topic created in 3768 days ago, the information mentioned may be changed or developed.
    下面这个是正常思路,k 为 0


    但是如果把 i<4 , j<1 位置互换,那么 k 值为 6 ,这是为什么呢? j<1 为什么就被忽略了呢?(如下图)
    10 replies  •  2016-07-20 00:05:12 +08:00
    Mutoo
    Mutoo
    Jul 19, 2016❤️1
    1
    逗号表达式,总是返回最后一个表达式的值。
    momou
    momou
    Jul 19, 2016❤️1
    2
    神马浏览器?
    shpasspass
    shpasspass
    OP
    Jul 19, 2016
    3
    @momou chrome 里看的
    momou
    momou
    Jul 19, 2016
    4
    @shpasspass Chrome 51.0.2704.103 m (64-bit) 然而并没有啊。。。
    shpasspass
    shpasspass
    OP
    Jul 19, 2016
    5
    @Mutoo 这种“逗号表达式,总是返回最后一个表达式的值”是 js 的 for 方法特有的吗?原因是什么呢?因为这样的话, j<1 或者写 j>999,其实 k 最后也是 6 。那逗号前的表达式就“鸡肋”一样了。
    ChiangDi
    ChiangDi
    Jul 19, 2016❤️1
    7
    并不是鸡肋,可以有副作用的,比如输出什么东西
    shpasspass
    shpasspass
    OP
    Jul 19, 2016
    8
    感谢,我先去瞧瞧
    Mutoo
    Mutoo
    Jul 19, 2016❤️1
    9
    @shpasspass 你如果要实现复合逻辑,应该用逻辑连接符 &&(且) 和 ||(或) 而不是使用逗号
    3A93EifxUzhBjhu6
    3A93EifxUzhBjhu6
    Jul 20, 2016 via Android
    10
    应该与或非… 还可以短路
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1029 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 18:57 · PVG 02:57 · LAX 10:57 · JFK 13:57
    ♥ Do have faith in what you're doing.