菜鸟发问!在 for 循环里写 (a == -1) && break; 会报错是咋回事? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
Cielos
V2EX    Javascript

菜鸟发问!在 for 循环里写 (a == -1) && break; 会报错是咋回事?

  •  
  •   Cielos 2020-04-30 17:07:57 +08:00 4272 次点击
    这是一个创建于 2066 天前的主题,其中的信息可能已经有所发展或是发生改变。
    而我用 if (a == -1) break; 就一切正常,搞不懂

    请问各位大佬,错在哪里啊?
    22 条回复    2020-05-02 12:22:13 +08:00
    sarvatathagata
        1
    sarvatathagata  
       2020-04-30 17:20:18 +08:00
    break 是一条语句,不能被转换成一个值。然而&&操作符的两侧必须是值
    kiracyan
        2
    kiracyan  
       2020-04-30 17:36:24 +08:00
    这编译报错吧
    phpfpm
        3
    phpfpm  
       2020-04-30 17:38:04 +08:00   4
    看了你的头像,我发出了沉思:可能你入错行了。。
    DL9412
        4
    DL9412  
       2020-04-30 17:38:10 +08:00
    个人理解,逻辑运算符两端都应该是一个值,或者能输出值的表达式。break,return,continue 都没法转换为值。
    你 Boolean(break)也会报一样的错误。

    看见一个类似的问题 http://stackmirror.caup.cn/page/rh50ycxwvuig
    liuxiaohua
        5
    liuxiaohua  
       2020-04-30 17:38:22 +08:00
    楼主这是哪门子的语法 第一次见
    kumasama
        6
    kumasama  
       2020-04-30 17:45:14 +08:00
    哪有这种语法,不加&&多简洁
    Cielos
        7
    Cielos  
    OP
       2020-04-30 17:45:47 +08:00
    纳鲁货多!谢谢二位大佬
    @DL9412
    @sarvatathagata
    hbolive
        8
    hbolive  
       2020-04-30 17:45:51 +08:00
    头像把我吸引进来的。。
    annielong
        9
    annielong  
       2020-04-30 17:47:13 +08:00
    老老实实按语法走不好吗、
    sneezry
        10
    sneezry  
       2020-04-30 17:47:57 +08:00 via iPhone   1
    是参考了 make && make install 么 (doge
    vicnicLight007
        11
    vicnicLight007  
       2020-04-30 17:49:13 +08:00
    请给我你头像的高清大图链接,谢谢
    krixaar
        12
    krixaar  
       2020-04-30 17:51:11 +08:00
    我大概明白了,因为 true && expr2 返回 expr2,所以楼主认为 true && break;返回 break;,然后 for 循环就被 break 了
    break;是个 statement (语句)不是 expression (表达式),所以不能用在这里

    参考: https://developer.mozilla.org/zh-CN/docs/Web/Javascript/Guide/Expressions_and_Operators
    Cielos
        13
    Cielos  
    OP
       2020-04-30 17:51:24 +08:00
    @annielong 李立超的 JS 教程里这样用过,我就拿来当 低配 if 用了
    LG3xFA6kpn88HxEW
        14
    LG3xFA6kpn88HxEW  
       2020-04-30 17:57:55 +08:00
    大大大(指代码
    doge
    fengtons
        15
    fengtons  
       2020-04-30 18:12:07 +08:00 via Android   2
    这种写法估计是 SHELL 写多了
    InkStone
        16
    InkStone  
       2020-04-30 18:14:48 +08:00
    其实如果 break 不是一个语句是一个表达式的话,这样写问题不大。
    毕竟 C 的短路求值是标准行为。
    autoxbc
        17
    autoxbc  
       2020-04-30 18:50:43 +08:00
    1. 代码要语义化,看起来在做的事情就应该是你真的希望做的事情
    2. 不要利用副作用,副作用可能被标准化,也可能不是
    liuzhiyong
        18
    liuzhiyong  
       2020-04-30 19:42:35 +08:00
    劝告楼主不要这样操作,代码首要任务是可读性,况且你这奇怪写法还没有性能提升。
    Takamine
        19
    Takamine  
       2020-04-30 21:09:21 +08:00
    我记得 PHP 里面有这种写法来着,不如试试上手世界上最好的语言。:doge:
    lizz666
        20
    lizz666  
       2020-04-30 21:26:04 +08:00
    xingheng
        21
    xingheng  
       2020-04-30 23:58:53 +08:00
    Hello, world!

    Goodbye, world!
    cigarzh
        22
    cigarzh  
       2020-05-02 12:22:13 +08:00
    shell 写多了……
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4338 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 10:03 PVG 18:03 LAX 02:03 JFK 05:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86