javascript代码执行结果分析

 <script>
            //var falseObject = new Boolean(false);
            var falseObject = new Boolean(true);
            alert(falseObject);
            var result = falseObject&&true;
            alert(result);//true

            var falseValue = false;
            result = falseValue&&true;
            alert(result);
        </script>

当使用Boolean类型的构造函数传入值,第一个alert会根据你传递的参数来反应,为什么
无论falseObject是什么值,第二个alert()都为true,顺便讲讲第二个代码

可以用typeof查看一下其数据类型:alert(typeof falseObject); //object

不过在这行代码中,计算的是falseObject(引用类型_存储的是指向其值false的地址),而不是它的值false.

在Boolean表达式中,所有对象都会转换为true所以,在进行Boolean运算中,falseObject的值为true .true && true,结果当然也是为true.

例子:
 var b = new Boolean(false);
  b 是 Boolean 对象实例,它的值是 false。但要注意的是,如果判断条件“b && true”,结果却为“true”,原因是此处是用对象 b 作为条件的,而不是 b 的值,由于在条件表达式中任何对象都自动转换为“true”,所以产生了不易理解的结果。
  在实际应用中,很少使用 Boolean 对象,通常使用的是 Boolean 原始值,这样可避免上面问题的发生。比如:
  var b = false;
  本例的 b 是一个 Boolean 类型的变量,它是原始值,不是 Boolean 对象。
  不论是 Boolean 对象还是 Boolean 原始类型,都可以引用 Boolean 对象的属性和方法。

谢谢,昨晚看书看到那里就迷糊了,看你讲解,感觉一下子明白了