为什么Angular有isDefined和isUndefined函数?

时间:2014-08-02 08:19:39

标签: javascript angularjs

我刚刚刷了一下AngularJS,我遇到了angular.isDefined和angular.isUndefined,你为什么要用这些?为什么不做呢

if (!obj) or if (obj === undefined)

我明白你可能不想不想做什么!var因为你会得到其他假的obj以及undefined。但为什么还要创建一种方法来解决这个问题呢?

2 个答案:

答案 0 :(得分:2)

在较旧的浏览器中,undefined常量不是常量,因此您可以通过意外为其分配值来打破它:

if (undefined = obj) // oops, now undefined isn't undefined any more...

检查非常量undefined安全的未定义值的方法有点长,并且要检查类型:

if (typeof obj === "undefined")

isUndefined这样的库方法使用这种安全方法,因此它允许您编写与更多浏览器兼容的代码,而无需了解每个浏览器的每个版本的每个怪癖。

答案 1 :(得分:0)

两者不相同:考虑var obj = false,然后if (!obj)truthyif (obj === undefined)falsy