检查null,空或未定义的angularjs

use*_*214 28 angularjs

我正在使用angularjs.创建一个项目.我有变量之类的

$scope.test = null
$scope.test = undefined
$scope.test = ""
Run Code Online (Sandbox Code Playgroud)

我想在一个条件中检查所有null,undefined和empty值

Ran*_*tas 69

只是用 -

if(!a) // if a is negative,undefined,null,empty value then...
{
    // do whatever
}
else {
    // do whatever
}
Run Code Online (Sandbox Code Playgroud)

这是因为在= javascript中==与===的差异,它将某些值转换为其他类型的"相等"值以检查相等性,而===则只检查值是否相等.所以基本上==运算符知道将"",null,undefined转换为false值.这正是你所需要的.

  • 在处理布尔值时我会小心谨慎.例如,使用`$ scope.$ watch()`,您要检查新值是未定义还是null,但如果该值是布尔值,则使用您的解决方案将无效. (2认同)
  • 您还需要小心数字,因为您可能希望捕获undefined和null,但不是0. (2认同)

T J*_*T J 6

你可以做

if($scope.test == null || $scope.test === ""){
  // null == undefined
}
Run Code Online (Sandbox Code Playgroud)

如果false0而且NaN也被认为是假值你可以做

if($scope.test){
 //not any of the above
}
Run Code Online (Sandbox Code Playgroud)