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>
2018-06-13
在這里,a是布爾值為true的一個東西,而true用1表示,false用0表示。最后彈出的數是1,其實也就是彈出的是true, 也就是你最開始設置的a的類型。
2019-07-23
明白啦,謝謝
2019-07-23
非0為真(1)? ? 0為假
2019-02-16
上面的最佳回答其實沒答到重點!!
編程語言中 1 往往代表 true 是沒錯,可是在樓主的程序中,如果把 a=a-0; 這段代碼去掉,下面的 alert(a); 是能夠直接回顯 true 的。
之所以樓主的程序回顯為 1,其實是因為在 a=a-0; 這段代碼中 a 和 0 兩個不同數據類型做運算,于是布爾值 true 被強制類型轉換為數值 1 了。