2 回答
TA贡献1847条经验 获得超11个赞
我想是这样吧!在javascript中Boolean往往不被人们重视,因为一般不是特别关于Javascript的情况下即时用到了Boolean类型时我们也只是如此来用:var ok=false;等。可实际上我们并未对Boolean本身做太多的追责。
Boolean在javascript中是原始类型,但很有趣的是他的原始值也同时是伪对象,哪么既然是伪对象,当然他们会具备Object的一些方法和属性。
哪么针对你上面的问题,我们不难看出,你这里是使用false来创建了一个Boolean对象oUpdated,哪么你在进行alert(oUpdated && true)做and操作的时候,这里是oUpdated对象本身,而Javascript中Boolean表达式的所有对象都会被自动转换为true,因此这里alert的结果一定是true,而不是false。同时我建议你在alert(oUpdated && true)前面先alert(typeof(oUpdated));结果是object。哪么这样结果就会不言而喻!
哪么下面的操作alert(oUpdated || false)我想他和alert(oUpdated || true)的结果都是一样的,同时返回false。这里为什么返回的false,我想不用说了,他返回的是oUpdated的值,不是oUpdated这个Boolean对象。这是由于||操作符决定了这个结果,首先会判断oUpdated,因为他是用Boolean创建的一个的对象,Boolean表达式决定了oUpdated永远是true,所以alert(oUpdated || false)时就会返回oUpdated,此时既然要返回oUpdated,当然他返回的只能是oUpdated的值false了。
我想我这样说应该是很明白了吧!_:)
如果还不能理解的话,可以给我发站类信继续交流的........
添加回答
举报