我试过了:
if(angular.isUndefined(value)){
// something
}
和
if(!(value)){
// something
}
答案 0 :(得分:2)
var foo = false;
if(!foo) {
// will log
console.log("foo is defined but false");
}
if(angular.isUndefined(foo)){
// will not log as foo is defined
console.log("foo is undefined")
}
没有定义foo的另一个例子
if(!foo) {
// will throw exception "Uncaught ReferenceError: foo is not defined "
console.log("foo is defined but false");
}
if(angular.isUndefined(foo)){
// will log
console.log("foo is undefined")
}
如此有效的angular.isUndefined(foo)除了评估
之外别无其他if(typeof foo == "undefined")
用于保存1个字符是的。
while!-operator检查定义的变量是否计算为false 所以
if(!foo)
与
相同if( foo != true)
更新:
正如评论中所述,当我写“评估为假”时,false
null
undefined
NaN
""
(空字符串)和{{ 1}}包括
答案 1 :(得分:0)
!是JavaScript中的逻辑非运算符,而angular.isUndefined(value)检查引用是否未定义
完全使用哪一个取决于你最终想要做什么。
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators和https://docs.angularjs.org/api/ng/function/angular.isUndefined