作者warex14 (航)
看板Web_Design
标题Re: [问题] &&=和||=的意思?
时间Tue Jun 16 01:27:54 2015
※ 引述《zpl ()》之铭言:
: ※ 引述《Adicia (爱迪希亚)》之铭言:
: : &&=
: : 进行&&运算,并将运算结果指定给左边的运算式
: : 例如,下面的运算是相同的:
: : x&&=y;
: : x=x&&y;
: : ||=
: : 进行||运算,并将运算结果指定给左边的运算式
: : 例如,下面的运算是相同的
: : x||=y;
: : x=x||y;
: : 摘自-张亚飞《Javascript +jQuery全能权威指南》
: : 以上的解说和范例完全看不懂@@
: : 我知道&&是and,||是or的意思
: : 它不是比较前後,最後得出的是布林值吗?
: : 它可以进行什麽样的运算呢?相加之类的吗?
: : 新手学习中... 请多多指点,谢谢~~
: 更正 ||= 与 &&= 是as3才能用
: 一般而言我会在一些状况下使用这种写法
: 「 ||= 」比较常用到,通常是在做预设值的时候会用到,
: 因为 || 的特性是当判断到可以是true的情况就回传
: ex:
: var x = 0 || false || 1234 || 5566 ;
: 则 x = 1234;
有点旧的文章了,但因为我是新手所以想来请教一下
我有点搞不懂 x=...||... ; 是在做什麽。
google了"javascript ||" 好像"||"会被忽略掉,所以也就不知道该怎麽办
所以就来这边请教各位高手。
我想问的是:
为什麽 x = 0 || false || 1234 || 5566 ;
最後得出的会是 x=1234 ?
x = 0 || false || 1234 || 5566 ;←翻译成白话文要怎麽解释阿?
应该不可能是「把 0或者false或者1234或者5566里面的其中一个值丢进x里」吧?
是指「把 0,false,1234,5566当中由左数过来第一个不是0或是false的值丢进x里」吗?
因为没看过这种写法,所以有点昏...
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.231.6
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Web_Design/M.1434389276.A.776.html
1F:→ iamnodoubt: 因为 || 的特性是当判断到可以是true的情况就回传 06/16 01:50
2F:→ iamnodoubt: 原文不是有讲? 06/16 01:50
因为我不太清楚1234也是属於true?
看来我得再多用功一点了...
3F:→ mmis1000: || 的意思是,如果左边的值不是空值(ex:false 0 [] '') 06/16 01:51
4F:→ mmis1000: 就回传左边,否则就右边 06/16 01:51
5F:→ mmis1000: 所以 (0) || (false || 1234 || 5566) 06/16 01:52
6F:→ mmis1000: (false) || (1234 || 5566) 06/16 01:52
7F:→ mmis1000: (1234) || (5566) 06/16 01:52
8F:→ mmis1000: 1234 06/16 01:52
9F:→ tooto1985: 短路逻辑 Short-circuit evaluation 06/16 09:05
※ 编辑: warex14 (140.112.25.106), 06/16/2015 11:04:22
10F:→ tooto1985: 用两个惊叹号可将任何东西转成布林值 !!1234 !!5566 06/16 22:50