作者zpl ()
看板Web_Design
标题Re: [问题] &&=和||=的意思?
时间Thu Oct 10 21:50:15 2013
※ 引述《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)
1F:→ akiratw:JavaScript 没有 &&= ||= 这种写法吧,要也是 &= 和 |= 10/10 21:52
&= 与 |= 是位元逻辑 执行结果与意义都不同
※ 编辑: zpl 来自: 114.27.57.85 (10/10 22:01)
2F:→ superpai:真的吗?我刚刚看到SyntaxError: Unexpected token = 10/10 22:05
3F:推 akiratw:可是我试了 Firefox 和 Chrome 都是 SyntaxError 10/10 22:06
4F:推 LaPass:到底是哪个版本的JavaScript?之前我在书上说有foreach,结 10/10 22:09
5F:→ LaPass:果也是不能用.... 10/10 22:09
好像搞错了 ||= 与 &&= 是as3才能用...
※ 编辑: zpl 来自: 114.27.57.85 (10/10 22:15)
6F:→ akiratw:AArray.forEach() 不是 JavaScript 1.6 开始就有了吗,还 10/10 22:17
7F:→ akiratw:是楼上说的是别的 foreach 10/10 22:17