问答详情
源自:2-11 是非颠倒(逻辑非操作符)

alert(a);为甚么a的值变成1?

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>new Boolean()</title>

</head>

<body>

<script type="text/javascript">
    var a= new Boolean(true);
    alert(typeof(a));
    a= a - 0;

    alert(a);




</script>
</body>
</html>


提问者:web_東 2018-06-13 05:12

个回答

  • imooc客服
    2018-06-13 09:40:37
    已采纳

    在这里,a是布尔值为true的一个东西,而true用1表示,false用0表示。最后弹出的数是1,其实也就是弹出的是true, 也就是你最开始设置的a的类型。

  • web_東
    2019-07-23 11:53:24

    明白啦,谢谢

  • 安璐璐
    2019-07-23 11:29:06

    非0为真(1)    0为假

  • 酷睿N核
    2019-02-16 16:27:05

    上面的最佳回答其实没答到重点!!

    编程语言中 1 往往代表 true 是没错,可是在楼主的程序中,如果把 a=a-0; 这段代码去掉,下面的 alert(a); 是能够直接回显 true 的。

    之所以楼主的程序回显为 1,其实是因为在 a=a-0; 这段代码中 a 和 0 两个不同数据类型做运算,于是布尔值 true 被强制类型转换为数值 1 了。