IE条件检查
IE Conditional Checks
在javascript中,我有一个对象的属性,我试图访问只有如果它是可用的,所以我做条件空/未定义检查使用对象之前。
if( object !== undefined && object != null ) // Occurs in IE8
{
// Use object
// Object.someProperty
}
On FF &Chrome,定义的行为是预期的。当他们看到object为空时,它不会进入if语句。然而,在IE中,它抱怨如何"someProperty"不应该被访问,因为对象是空的,并进入无论如何。但这就是为什么我的条件支票是为FF &Chrome实现了这一点。
我的问题是,为什么即使在if语句中,当有条件检查停止它时,它也试图使用对象执行行?
更进一步,这个问题的解决方案如下:
if( object !== undefined && object != null && true )
{
// Use object
// Object.someProperty
}
注意"&&在未定义和null检查之后为True。这似乎迫使IE意识到条件应该真正计算为false,并且它按预期工作。
因此,尽管似乎有一种方法可以"使它工作",我上面的问题仍然成立。
提前感谢各位!
object
只有在没有定义或声明时才应该是未定义的,而object
只有在显式设置为null
时才应该是null
。
object
为undefined
的例子:
var object;
object
为null
的例子:
var object = null;
我检查它的方法是:
if (object) {
}
这将确保object
不是假的。如果为false,则为以下值之一:
false
0
-0
""
null
undefined
NaN
如果你不确定是否声明了object
,你需要检查它的类型:
if (typeof object !== "undefined") {
}
但是如果你还需要查看它是否为空,那么使用:
if (typeof object !== "undefined" && object !== null) {
}
当然,您可以将typeof
检查与它的真实性结合起来:
if (typeof object !== "undefined" && object) {
}
如果以后需要检查它是否有属性,使用:
if ("someProperty" in object) {
}
相关文章:
- 如何获取jQuery Confirm(jConfirm)值并使用该值检查条件
- 如何在angularjs中更改文本框类,同时键入和检查条件
- 每次调用函数后都要检查条件
- for循环在javascript中循环一次后不检查条件
- 网格视图中的Checbox检查条件无法按JavaScript的要求工作
- JavaScript - 是否有必要先检查条件
- 检查条件后如何在JavaScript中转到下一页
- 检查条件后转到给定的网址
- 如何使用ASCII值在JavaScript中检查条件
- 非常基本的 JavaScript,使用 || 检查条件(或)
- 表单验证在检查条件后未发出警报
- 继续检查条件是否成立
- 在加载时,如何以数组的形式检查条件中的多个值
- 如何在以编程方式在 JavaScript 中提交表单之前检查条件
- javascript中检查条件的奇怪行为
- 使& # 39;dom-if& # 39;根据另一个元素中的属性检查条件
- Angular ng-show不会连续检查条件
- Javascript在span标签的情况下没有正确检查条件
- 如何在Javascript函数中检查条件
- 检查条件后使用jQuery取消复选框