咖啡伴侶

          呆在上海
          posts - 163, comments - 156, trackbacks - 0, articles - 2

          JS instanceof 判斷類型 問(wèn)題

          Posted on 2009-06-29 18:11 oathleo 閱讀(5570) 評(píng)論(3)  編輯  收藏 所屬分類: Web
          判斷變量類型:一般情況下,可以先用typeof 運(yùn)算符,如果結(jié)果是"object",再用instanceof來(lái)判斷;
          ?特別的地方是:
          ??? instanceof不認(rèn)為原始類型值的變量是對(duì)象,

          ???1.?var?temp="a?string?for?test";???
          ???
          2.?//下面這句返回"string"???
          ???3.?alert(?typeof?temp);???
          ???
          4.?//下面這句返回"false"???
          ???5.?alert(temp?instanceof?String);???
          ???
          6.???
          ???
          7.?//看看Ext內(nèi)部實(shí)現(xiàn),判斷String類型?
          ???8. if(? typeof temp== "string"){
          ?? 9. }

          其他附加問(wèn)題:
          • null:表示尚未存在的對(duì)象,注意,盡管尚未存在,也是個(gè)對(duì)象啊,所以用typeof檢測(cè)一個(gè)null值變量的結(jié)果是Object;不過(guò),為了便于寫if語(yǔ)句,在js中,"undefined==false", "null=false", 因此,"undefined==null"。
          • 整數(shù):最容易犯的錯(cuò)誤就是,忘了070其實(shí)是個(gè)八進(jìn)制數(shù),相當(dāng)于十進(jìn)制的56;
          • 浮點(diǎn)數(shù):“在進(jìn)行運(yùn)算之前,真正存儲(chǔ)的是字符串”——這應(yīng)該是解釋執(zhí)行的本質(zhì)決定的吧——直接后果是,alert(0.8)這樣的語(yǔ)句可以正確輸出,而alert(2*0.8)的輸出就成了"2.40000000000000003"
          • 數(shù)字邊界: 數(shù)字有幾個(gè)邊界值,分別是Number.MAX_VALUE(最大值), Number.MIN_VALUE(最小值), Number.POSITIVE_INFINITY(正無(wú)窮), Number.NEGATIVE_INFINITY(負(fù)無(wú)窮), Infinity(無(wú)窮大,-Infinity,這個(gè)有點(diǎn)莫名其妙,不知道為啥又搞出一套);特別地,還有一個(gè)isFinit(iNumber)函數(shù)來(lái)判 斷數(shù)字是否為無(wú)窮大。
          • NaN:一些需要數(shù)字作為參數(shù)的函數(shù),當(dāng)傳入的實(shí)參無(wú)法轉(zhuǎn)換為數(shù)字時(shí),往往會(huì)返回這個(gè)值;關(guān)于NaN,最重要的就是要記住NaN!=NaN,因此判斷一個(gè)變量是否為NaN,一定要使用isNaN(var)函數(shù)。
          • 將字符串轉(zhuǎn)換為數(shù)字:sVar.parseInt() 是最常用的函數(shù),也最容易出錯(cuò),為了保險(xiǎn)起見,最好每次調(diào)用的時(shí)候,都加上“進(jìn)制”的參數(shù),比如:a.parseInt(10),就制定了按十進(jìn)制轉(zhuǎn)換字 符串a(chǎn);Number(sVar)也是一種轉(zhuǎn)換方式,不同的是,它要求整個(gè)字符串都得是有效數(shù)字,因此Number("4.5.5")將返回NaN;

          Feedback

          # re: JS instanceof 判斷類型 問(wèn)題[未登錄](méi)  回復(fù)  更多評(píng)論   

          2010-09-28 17:00 by polaris
          博主,此處不對(duì):而alert(2*0.8)的輸出就成了"2.40000000000000003" 。不知道你寫的時(shí)候有沒(méi)有測(cè)試,或者是你的JavaScript版本導(dǎo)致的?我測(cè)試是正常的,輸出為1.6

          # re: JS instanceof 判斷類型 問(wèn)題[未登錄](méi)  回復(fù)  更多評(píng)論   

          2011-07-22 17:39 by peter
          同上,firebug下調(diào)試的.

          # re: JS instanceof 判斷類型 問(wèn)題  回復(fù)  更多評(píng)論   

          2012-07-27 11:35 by 瞬間的永恒
          那里應(yīng)該是 alert(3*0.8) ,我這邊的結(jié)果是2.4000000000000004
          主站蜘蛛池模板: 远安县| 柳江县| 扎兰屯市| 宜兰市| 巨鹿县| 姚安县| 常山县| 榆中县| 伊春市| 兴业县| 广河县| 瑞丽市| 台南市| 临汾市| 榆树市| 罗源县| 桐城市| 武强县| 福海县| 改则县| 黄陵县| 八宿县| 寿阳县| 定西市| 布拖县| 宁德市| 卓尼县| 宝丰县| 肃宁县| 酒泉市| 芜湖市| 西乡县| 枣强县| 恩平市| 彩票| 威宁| 武宁县| 内黄县| 眉山市| 称多县| 河曲县|