我毫不怀疑这是一个问题的重复,但我无法找到正确的搜索条件。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;
它稍微更冗长,但仍然相当优雅的方式来提供默认值。
变量在赋值过程中如何可能是错误的?你能解释一下你在做什么,或者你想做什么? –
忘记了这个问题写得有多糟糕:)虽然我很好,但我现在更新:) –
我不明白你的“我实际想要达到什么”与原始问题有任何关系。 –