我毫不怀疑这是一个问题的重复,但我找不到正确的搜索词。
我想要一个速记变量声明,如果它是假的,就不会被定义。我记得它看起来像这样:
var jamie = jamie : 'or maybe not';
如果这更容易理解,这就是我真正想要实现的目标。
if($('body').hasClass('loggedin')){
var loggedin = true;
}
请记住,我不知道它是什么。
我毫不怀疑这是一个问题的重复,但我找不到正确的搜索词。
我想要一个速记变量声明,如果它是假的,就不会被定义。我记得它看起来像这样:
var jamie = jamie : 'or maybe not';
如果这更容易理解,这就是我真正想要实现的目标。
if($('body').hasClass('loggedin')){
var loggedin = true;
}
请记住,我不知道它是什么。
var jamie = someVarThatCanBeUndefined || 'or maybe not';
您可以使用上述内容进行合并
这是一个包含更多详细信息的答案 JavaScript 中是否存在“空值合并”运算符?
如果你想要简写符号if
试试这个:
boolCondition ? "OneStringForTrue" : "AnotherForFalse"
这通常被称为
Conditional (Ternary) Operator (?:) (JavaScript)
var jamie = jamie || 'or maybe not';
就那么简单。
首先,初始化loggedIn的最简单方法是简单地将hasClass的返回值赋给它,它是一个布尔值:
var loggedin = $('body').hasClass('loggedin');
您记得的是一种为变量提供默认值的简短方法,通过使用逻辑 OR 运算符返回第一个值为 true 的值,或者如果全部为 false 则返回最后一个值:
jamie = jamie || 'or maybe not'; // identical to if (!jamie) jamie = 'or maybe not';
最后,|| 运算符在变量的初始值为假的某些边缘情况下失败:
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
and时undefined
),并非所有虚假值,您都可以使用条件运算符:
number = number != null ? number : 10;
它稍微有点冗长,但仍然是提供默认值的一种非常优雅的方式。
hasClass 已经是布尔值:
var loggedin = $('body').hasClass('loggedin');