关于ECMAScript 引用类型的一个问题,哪位大神能通俗的一点给我解释一下

图片说明

 <html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
<script>
var b1=new Boolean(false);
var a1=b1&&true;
var c1=false&&true;
document.write(b1+"<br>"+a1+"<br>"+c1)

</script>
</head>

<body>

</body>

</html>
 var b1=new Boolean(false);//b1是对象
var a1=b1&&true;//对象等价于true,所以a1也为true。你要取值才是实际的true/false。如var a1=b1.valueOf()&&true;这样a1才是false
var c1=false&&true;//这个没什么好说的,主要是你没区分清楚b1是什么
document.write(b1+"<br>"+a1+"<br>"+c1)//这里b1输出false是因为和字符串相加时会调用默认的toString方法返回"false"字符串