var oUpdated=new Boolean(false);
alert(oUpdated && true);
var oUpdated=new Boolean(false);
alert(oUpdated || false);
我想是这样吧!在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了。
我想我这样说应该是很明白了吧!_:)
如果还不能理解的话,可以给我发站类信继续交流的........
new Boolean('')也为false吧……
你上面两句不是一样吗?
在这段代码中,用 false 值创建 Boolean 对象。然后用这个值与原始值 true 进行 AND 操作。在 Boolean 运算中,false 和 true 进行 AND 操作的结果是 false。不过,在这行代码中,计算的是 oUpdated,而不是它的值 false。
在 Boolean 表达式中,所有对象都会被自动转换为 true,所以 oUpdated的值是 true。然后 true 再与 true 进行 AND 操作,结果为 true。
在这段代码中,用 false 值创建 Boolean 对象。然后用这个值与原始值 true 进行 AND 操作。在 Boolean 运算中,false 和 true 进行 AND 操作的结果是 false。不过,在这行代码中,计算的是 oUpdated,而不是它的值 false。 在 Boolean 表达式中,所有对象都会被自动转换为 true,所以 oUpdated的值是 true。然后 true 再与 true 进行 AND 操作,结果为 true。非常正确!加十分!!
mark...