我碰巧知道下面的代碼邏輯運算符||在JavaScript中,0代表布爾錯誤?
這裏是代碼,很簡單:
var test = 0 || -1 ;
console.log(test);
然後在控制檯輸出-1
並不知我是真的新到JavaScript,
所有我想到的是,代表布爾型False in JS,所以||
運營商似乎忽略了0並將值-1賦值給變量
所以我對嗎? 我只是想確認
我碰巧知道下面的代碼邏輯運算符||在JavaScript中,0代表布爾錯誤?
這裏是代碼,很簡單:
var test = 0 || -1 ;
console.log(test);
然後在控制檯輸出-1
並不知我是真的新到JavaScript,
所有我想到的是,代表布爾型False in JS,所以||
運營商似乎忽略了0並將值-1賦值給變量
所以我對嗎? 我只是想確認
||
- expr1 || expr2
(邏輯OR)
將返回EXPR1如果能夠轉化爲真實的;否則,返回expr2。因此,當與布爾值一起使用時,||如果任一操作數爲真,則返回true;如果兩者都爲假,則返回false ..
&&
- expr1 && expr2
(邏輯與)
返回expr1的,如果它可以被轉換爲假;否則,返回expr2。因此,當與布爾值一起使用時,如果兩個操作數都爲真,則返回true;否則,返回true。否則,返回false。
在Javascript中所有的值爲 「truthy」 或 「falsy」。
下面的值是等效於誤在條件語句:
""
(\ ''
)其他所有值都等於true。
所以...... var test = 0 || -1 ;
回報-1
。
如果是var test = 0 || false || undefined || "" || 2 || -1
它將返回2
上MDN
在[Practical Node.js](http://www.apress.com/9781430265955)中有以下代碼:'var user = function(ops){{{name}:ops.name || 'John',姓氏:ops.name || 'Doe',電子郵件:ops.email || '[email protected]',name:function(){return this.firstName + this.lastName}}}' - 所以,我猜它分配了第一個值,如果它們是「truthy」(已定義)第二個值是默認值? – Fuhrmanator 2014-09-23 13:56:50
@Fuhrmanator正確。 – gdoron 2014-09-23 14:02:10
邏輯運算符是!.....謝謝你指出! – Lien 2012-03-06 07:15:13