JavaScript中的Var布尔值

时间:2015-07-14 20:59:37

标签: javascript python angularjs

我不是JavaScript的专家,我很想知道是否有办法在javascript中测试变量的布尔值。

在Python中,我可以这样做:

>>>list_var = []
>>>bool(list_var)
False  # This is the boolean value of a empty list
>>>

如果我尝试在JS中获取一个不存在的元素,即:

document.getElementById('b-advanced')
[]  // This is what returns

有没有办法在不使用if...语句的情况下将上面的表达式测试为布尔值?

修改

我想我需要指出一些事情。

这是我使用的完整表达式:

angular.element(document.getElementById('b-advanced'))

5 个答案:

答案 0 :(得分:2)

没有。你能做的最好的是list_var.length === 0。要进行全面测试,您需要按以下方式进行测试

// Return true if arg is an array or string containing at least one item
function isTrueness(arg) {
    return !!(arg && arg.length > 0);
}

angular.element(isTrueness(document.getElementById('b-advanced')));

答案 1 :(得分:1)

var x = Boolean(document.getElementById('b-advanced'));

Boolean是布尔值的包装器。

答案 2 :(得分:1)

您可以在前面使用!!,它将返回其布尔状态。

!![] // true
!!null // false

答案 3 :(得分:0)

您可以使用typeof进行测试以查看变量的类型,例如:

var myVar = true;
if (typeof myVar === "boolean") console.log("It is a boolean");

答案 4 :(得分:-1)

在Python中,空列表为false。在Javascript中,空数组为true。你可以通过说myArray.length && myArray来模仿这个。如果myArray为空,则其长度为零,表达式为false。如果myArray不为空,则Javascript返回第二个操作数,就像Python一样。