我看到一些像這樣的變量:對比參數
var comparison = <condition> || /* It could be "&&" too */ <condition>;
我不知道它是什麼,它能做什麼? Tks you so much!
我看到一些像這樣的變量:對比參數
var comparison = <condition> || /* It could be "&&" too */ <condition>;
我不知道它是什麼,它能做什麼? Tks you so much!
他們」重新調用logical operators(MDN):
expr1 && expr2
:返回expr1是否可以轉換爲false;否則,返回expr2。因此,當與布爾值一起使用時,如果兩個操作數都爲真,則返回true;否則,返回true。否則,返回false。
expr1 || expr2
:如果它可以轉換爲true,則返回expr1;否則,返回expr2。因此,當與布爾值一起使用時,||如果任一操作數爲真,則返回true;如果兩者都是假的,則返回false。
代碼將評估這兩個條件並返回一個布爾值。
var comparison = 2 > 1 && 3 < 1;
在這種情況下,comparison
將被設置爲false
。
&&
將返回true
只有兩個條件都爲真,而||
將返回true
如果至少一個條件是true
。
這與原始問題中的情況不同。 Elias Van Ootagem的回答是正確的。 – akronymn
它主要用於將函數參數初始化爲某個默認值。
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';
}
@ruakh我改變了我的報價選擇。 – jeremy