在javascript中:
d={one: false, two: true}
d.one
d.two
d.three我希望能够区分d.one和d.three。默认情况下,它们的计算结果都为false,但在我的例子中,它们不应该被同等对待。
发布于 2010-10-16 09:24:09
你可以做到
"one" in d // or "two", etc或
d.hasOwnProperty("one")您可能希望hasOwnProperty,因为如果属性位于原型链中的一个对象上,则in操作符也将返回true。例如:
"toString" in d // -> true
d.hasOwnProperty("toString") // -> false发布于 2010-10-16 09:24:23
这些值不是严格意义上的false:
js> d={one: false, two: true}
[object Object]
js> d.one == false
true
js> d.three == false
false
js> d.three === false
false
js> d.three === undefined
true
js> 'three' in d
false
js> 'one' in d
true另外,请参阅下面olliej和Ken的评论。
发布于 2010-10-16 14:24:55
好吧,d.one是false,d.three是undefined。
var d={one: false, two: true};
alert("one: " + d.one + "\nthree: " + d.three);
// Output:
// one: false
// three: undefinedTry it out with this jsFiddle
Javascript有时确实有一些时髦的true false评估,但这不是其中一种情况:
alert(d.three == false); // alerts falseTo check for undefined you can use typeof
if (typeof something == "undefined") 或者您可以检查three是否是d的属性
if (d.hasOwnProperty("three"));https://stackoverflow.com/questions/3947231
复制相似问题