Re: [問題] &&=和||=的意思?
※ 引述《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;
舉例用法1(設定預設值):
function foo(xx,yy,zz){
yy ||= "預設值1";
zz ||= "預設值2";
...
}
foo(123);
這種用法要注意輸入的 yy,zz 不會是 false 之類的值,
所以「 x ||= 123; 」也可以看成 「 if(!x) x=123; else x = x; 」
舉例用法2(條件式處理):
var a,b,c=4;
function foo(){b=2; return 5;}
a = b || foo() || c;
則 a = 5, b = 2 , c = 4
同義於
if(b) a = b;
else {
a = foo();
if(!a) a = c;
}
至於 「 &&= 」就比較少用到了,通常是用來記錄邏輯flag狀態
而 && 特性為 || 的相反,為執行到可以是false狀態就回傳
ex:
var a,b,c=4;
function foo(){b=2; return 5;}
a = (b=1) && foo() && c && 0 && 123;
則 a=0,b=2,c=4
舉例用法?
var flag = true;
處理邏輯A...
flag &&= A;
處理邏輯B...
flag &&= B;
return flag;
通常是沒有這樣寫,除非是想省幾個變數宣告吧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.27.57.85
※ 編輯: zpl 來自: 114.27.57.85 (10/10 21:52)
→
10/10 21:52, , 1F
10/10 21:52, 1F
&= 與 |= 是位元邏輯 執行結果與意義都不同
※ 編輯: zpl 來自: 114.27.57.85 (10/10 22:01)
→
10/10 22:05, , 2F
10/10 22:05, 2F
推
10/10 22:06, , 3F
10/10 22:06, 3F
推
10/10 22:09, , 4F
10/10 22:09, 4F
→
10/10 22:09, , 5F
10/10 22:09, 5F
好像搞錯了 ||= 與 &&= 是as3才能用...
※ 編輯: zpl 來自: 114.27.57.85 (10/10 22:15)
→
10/10 22:17, , 6F
10/10 22:17, 6F
→
10/10 22:17, , 7F
10/10 22:17, 7F
討論串 (同標題文章)