JavaScript中的Boolean類型

          Posted on 2006-11-24 19:11 Jaunt 閱讀(1032) 評(píng)論(0)  編輯  收藏 所屬分類: JavaScript
          今天看到 Oo緣來(lái)是你oO 的博客,關(guān)于Boolean 類型一些問(wèn)題如下:

          正文:
          JavaScript中的Boolean類型

          1.???我們所熟悉的

          var x = false;
          var y = true;

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

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

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

          此時(shí)我們聲明了一個(gè)Boolean對(duì)象,Boolean對(duì)象是對(duì)Boolean值的一個(gè)封裝。
          Boolean對(duì)象:一個(gè)值為true或false的Boolean對(duì)象。

          原始的Boolean值和Boolean對(duì)象是有區(qū)別的,不要相互混淆,引用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.???區(qū)別

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

          區(qū)別(2):???在條件語(yǔ)句(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 " );

          輸出結(jié)果:

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

          區(qū)別(3):初始化Boolean對(duì)象

          聲明一個(gè)Boolean對(duì)象,如果我們用一個(gè)值為false的Boolean對(duì)象對(duì)其進(jìn)行初始化,則新的Boolean對(duì)象的值為true

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

          Oo緣來(lái)是你oO 的博客中 馬嘉楠 ?遇到這個(gè)問(wèn)題,查了一些資料才知道,學(xué)無(wú)止境啊。可是我的問(wèn)題依然沒有解決。
          我的問(wèn)題是關(guān)于Boolean對(duì)象的初始化。代碼如下,

          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);

          結(jié)果:
          ob2? = ? true ?ob3? = ? false ?ob4? = ? true ?ob5? = ? true

          問(wèn)題已經(jīng)解決:

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

          &&是這樣運(yùn)算的:從第一個(gè)開始,遇到無(wú)意義的返回,否則返回最后一個(gè)表達(dá)式(注意同上);

          !是這樣運(yùn)算的:
          對(duì)表達(dá)式的值取非(注意不是對(duì)表達(dá)式)。

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

          new Boolean(),new Boolean(false)是同一個(gè)東西,由于它是一個(gè)對(duì)象,故是有意義的,但其值為false,所以,可以看為“有意義的false”,所以結(jié)果為最后一個(gè)表達(dá)式的值。
          主站蜘蛛池模板: 蓝田县| 思茅市| 富宁县| 福州市| 和硕县| 全椒县| 上蔡县| 江油市| 苍溪县| 无为县| 阜宁县| 遵义县| 云霄县| 盐池县| 巫山县| 和林格尔县| 扎兰屯市| 浠水县| 柳河县| 郸城县| 宜川县| 汶上县| 重庆市| 锡林郭勒盟| 梁平县| 甘德县| 曲阳县| 高尔夫| 吴桥县| 乌苏市| 平山县| 富平县| 三穗县| 临清市| 清流县| 青海省| 沙坪坝区| 东阿县| 介休市| 蕉岭县| 衢州市|