我不是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'))
答案 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一样。