Javascript使用if语句声明变量

时间:2013-10-21 21:39:00

标签: javascript

我毫不怀疑这是一个问题的重复,但我找不到正确的搜索字词。

我想要一个简写变量声明,如果它是false则不会被定义。我记得它看起来像这样:

 var jamie = jamie : 'or maybe not';

如果这样可以更容易理解,那么这就是我实际想要实现的目标。

    if($('body').hasClass('loggedin')){
        var loggedin = true;
    }

记住,我不知道它是什么。

4 个答案:

答案 0 :(得分:7)

 var jamie = someVarThatCanBeUndefined || 'or maybe not';

您可以使用上述内容进行合并

以下是更多细节的答案 Is there a "null coalescing" operator in JavaScript?

如果您想要if

的简写符号

请改为尝试:

boolCondition ? "OneStringForTrue" : "AnotherForFalse"

这通常被称为

Conditional (Ternary) Operator (?:) (JavaScript)

答案 1 :(得分:3)

var jamie = jamie || 'or maybe not';

这很简单。

答案 2 :(得分:1)

hasClass已经布尔:

var loggedin = $('body').hasClass('loggedin');

答案 3 :(得分:1)

首先,初始化loggedIn的最简单方法是简单地为它指定hasClass的返回值,这是一个布尔值:

var loggedin = $('body').hasClass('loggedin');

您记得的是为变量提供默认值的简短方法,使用逻辑OR运算符返回第一个值为true的值或最后一个值(如果all为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.

在这种情况下(通常在您只想检查nullundefined时),而不是所有的假值,您可以使用条件运算符:

number = number != null ? number : 10;

它稍微冗长一点,但仍然是提供默认值的优雅方式。

相关问题