我毫不懷疑這是一個問題的重複,但我無法找到正確的搜索條件。Javascript聲明變量if語句
我想要一個速記變量聲明,如果它的假將不會被定義。我記得它看起來像這樣:
var jamie = jamie : 'or maybe not';
如果這使得它更容易理解,這就是我實際上試圖實現的。
if($('body').hasClass('loggedin')){
var loggedin = true;
}
請記住,我不知道它是什麼。
我毫不懷疑這是一個問題的重複,但我無法找到正確的搜索條件。Javascript聲明變量if語句
我想要一個速記變量聲明,如果它的假將不會被定義。我記得它看起來像這樣:
var jamie = jamie : 'or maybe not';
如果這使得它更容易理解,這就是我實際上試圖實現的。
if($('body').hasClass('loggedin')){
var loggedin = true;
}
請記住,我不知道它是什麼。
var jamie = someVarThatCanBeUndefined || 'or maybe not';
您可以用上面的做合併
這裏有更多的細節 Is there a "null coalescing" operator in JavaScript?
如果你想速記符號爲if
試試這個答案:
boolCondition ? "OneStringForTrue" : "AnotherForFalse"
這通常被稱爲
Conditional (Ternary) Operator (?:) (JavaScript)
var jamie = jamie || 'or maybe not';
這麼簡單。
hasClass已經布爾:
var loggedin = $('body').hasClass('loggedin');
燁,我只記得這一點,並有一個「面子掌」的時刻。 –
首先,初始化的loggedIn最簡單的方式是通過簡單地分配給它hasClass的返回值,這是一個布爾值:
var loggedin = $('body').hasClass('loggedin');
什麼你請記住,通過使用邏輯OR運算符可以爲變量提供默認值的簡短方法,該運算符可返回評估爲true的第一個值,如果全部爲false,則返回最後一個值:
jamie = jamie || 'or maybe not'; // identical to if (!jamie) jamie = 'or maybe not';
最後,運營商在某些邊緣情況下,該變量的初始值是falsy失敗:
function f(number) {
number = number || 10; // if number is not provided, default to 10
console.log(number);
}
f(0) // whoops, number was provided, but it will log 10 instead.
在這種情況下(如果你想檢查只是針對null
和undefined
經常發生),不是所有的falsy值,可以使用有條件的運營商:
number = number != null ? number : 10;
它稍微更冗長,但仍然相當優雅的方式來提供默認值。
變量在賦值過程中如何可能是錯誤的?你能解釋一下你在做什麼,或者你想做什麼? –
忘記了這個問題寫得有多糟糕:)雖然我很好,但我現在更新:) –
我不明白你的「我實際想要達到什麼」與原始問題有任何關係。 –