JavaScript中的Boolean類型

          Posted on 2006-11-24 19:11 Jaunt 閱讀(1039) 評論(0)  編輯  收藏 所屬分類: JavaScript
          今天看到 Oo緣來是你oO 的博客,關于Boolean 類型一些問題如下:

          正文:
          JavaScript中的Boolean類型

          1.???我們所熟悉的

          var x = false;
          var y = true;

          這是我們大家都熟悉的,此時我們使用的是原始的Boolean值(the primitive Boolean values )true和false

          2.???我們很少用到的

          var xObject = new Boolean(false);
          var yObject = new Boolean(true);

          此時我們聲明了一個Boolean對象,Boolean對象是對Boolean值的一個封裝。
          Boolean對象:一個值為true或false的Boolean對象。

          原始的Boolean值和Boolean對象是有區別的,不要相互混淆,引用Core JavaScript 1.5 Reference中的一句話:
          Do not confuse the primitive Boolean values true and false with the true and false values of the Boolean object.


          3.???區別

          區別(1):???聲明形式

          區別(2):???在條件語句(condition statement)中

          var ?x? = ? false ;
          var ?xObject? = ? new ?Boolean( false
          );

          if
          (x)
          ????alert(
          " x?=?true "
          );
          else

          ????alert(
          " x?=?false " );

          if
          (xObject)
          ????alert(
          " xObject?=? " ? + ?xObject? + ? " ,?but?in?the?condition?statement,?the?xObject?value?is?evaluated?to?true "
          );
          else

          ????alert(
          " xObject?=?false " );

          輸出結果:

          x? = ? false
          xObject?
          = ? false,??but?in?the?condition?statement,?the?xObject?value?is?evaluated?to?true

          區別(3):初始化Boolean對象

          聲明一個Boolean對象,如果我們用一個值為false的Boolean對象對其進行初始化,則新的Boolean對象的值為true

          var ?xObject? = ? new ?Boolean( false );
          var ?resXObject? = ? new
          ?Boolean(xObject);
          alert(
          " The?resXObject?value?is? " ? + ?resXObject);

          Oo緣來是你oO 的博客中 馬嘉楠 ?遇到這個問題,查了一些資料才知道,學無止境啊。可是我的問題依然沒有解決。
          我的問題是關于Boolean對象的初始化。代碼如下,

          var ?ob1? = ? new ?Boolean( false );
          var ?ob2? = ?(ob1 && true
          );
          var ?ob3? = ?( true &&
          ob1);
          var ?ob4? = ?Boolean(ob1 && true
          );
          var ?ob5? = ?Boolean( true &&
          ob1);
          alert(
          " ob2?=? " ? + ?ob2? + ? " ?ob3?=? " ? + ?ob3? + ? " ?ob4?=? " ? + ?ob4? + ? " ?ob5?=? " ? + ?ob5);

          結果:
          ob2? = ? true ?ob3? = ? false ?ob4? = ? true ?ob5? = ? true

          問題已經解決:

          ||是這樣運算的:從第一個開始,遇到有意義的返回,否則返回最后一個表達式(注意不一定是Boolean值);

          &&是這樣運算的:從第一個開始,遇到無意義的返回,否則返回最后一個表達式(注意同上);

          !是這樣運算的:
          對表達式的值取非(注意不是對表達式)。

          什么是無意義呢:如下六個 0,null,undefined,"",false,NaN。除此,視為有意義。

          new Boolean(),new Boolean(false)是同一個東西,由于它是一個對象,故是有意義的,但其值為false,所以,可以看為“有意義的false”,所以結果為最后一個表達式的值。
          主站蜘蛛池模板: 济南市| 图片| 长岛县| 清徐县| 吴堡县| 永定县| 贺州市| 漳平市| 射洪县| 天峻县| 洛隆县| 阿拉善左旗| 三都| 蒙自县| 邓州市| 浦城县| 收藏| 金川县| 合作市| 连江县| 平山县| 宜黄县| 阜城县| 崇左市| 柏乡县| 诸城市| 溧阳市| 玉林市| 吉木萨尔县| 谢通门县| 南汇区| 怀远县| 鄢陵县| 大新县| 沛县| 南靖县| 莱阳市| 千阳县| 泸定县| 东乡族自治县| 潞西市|