2012-09-30 27 views
0

我看到一些像這樣的變量:對比參數

var comparison = <condition> || /* It could be "&&" too */ <condition>; 

我不知道它是什麼,它能做什麼? Tks you so much!

回答

2

他們」重新調用logical operators(MDN):

expr1 && expr2:返回expr1是否可以轉換爲false;否則,返回expr2。因此,當與布爾值一起使用時,如果兩個操作數都爲真,則返回true;否則,返回true。否則,返回false。

expr1 || expr2:如果它可以轉換爲true,則返回expr1;否則,返回expr2。因此,當與布爾值一起使用時,||如果任一操作數爲真,則返回true;如果兩者都是假的,則返回false。

+0

@ruakh我改變了我的報價選擇。 – jeremy

1

代碼將評估這兩個條件並返回一個布爾值。

var comparison = 2 > 1 && 3 < 1;

在這種情況下,comparison將被設置爲false

&&將返回true只有兩個條件都爲真,而||將返回true如果至少一個條件是true

+0

這與原始問題中的情況不同。 Elias Van Ootagem的回答是正確的。 – akronymn

3

它主要用於將函數參數初始化爲某個默認值。

function foo(arg1,arg2) 
{ 
    arg1 = arg1 || 'Default for arg1'; 
    arg2 = arg2 || 'Default for arg2'; 
} 

這段代碼的含義,其實是一樣的如下:

if (!(arg1)) 
{//if arg1 is falsy 
    arg1 = 'Default for arg1';//assign 
} 

至於&&推移,這幾乎是同樣的故事:

function foo(arg1,arg2) 
{ 
    var areBothArgsTrue = arg1 && arg2;//sets true is both args were truthy, else assigns false 
    arg1 = arg1 || 'Default for arg1'; 
    arg2 = arg2 || 'Default for arg2'; 
}