angularjs – angular.isUndefined(value)和不是!(value)之间的区别是什么?

我试过了:

if(angular.isUndefined(value)){
    // something
}

if(!(value)){
    // something
}

>这两者有区别吗?
>是否有一个用例来选择一个而不是另一个

解决方法

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“”(空字符串)并且包含0

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...