国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

細說 Javascript 類型篇(四) : 類型轉換

chengtao1633 / 3412人閱讀

摘要:因為是弱類型語言,所以它會在任何可能的情形下對變量進行強制類型轉換。內置類型的構造函數調用內置類型的構造函數時,是否使用關鍵字將表現得大不相同。傳遞字面值或非對象值也會造成強制類型轉換的現象。最好的方法就是顯示地將值轉換為,或三種類型之一。

因為 Javascript 是弱類型語言,所以它會在任何可能的情形下對變量進行強制類型轉換。

// These are true
new Number(10) == 10; // Number.toString() is converted
                      // back to a number

10 == "10";           // Strings gets converted to Number
10 == "+10 ";         // More string madness
10 == "010";          // And more 
isNaN(null) == false; // null converts to 0
                      // which of course is not NaN

// These are false
10 == 010;
10 == "-10";

為了避免以上例子中的問題,十分建議使用嚴格相等符號 ===。雖然這個方法可以解決大部分普遍的問題,但是由于 Javascript 的弱類型原因,還是會造成許多其他的問題。

內置類型的構造函數 Constructor

調用內置類型的構造函數時,是否使用關鍵字 new 將表現得大不相同。

new Number(10) === 10;     // False, Object and Number
Number(10) === 10;         // True, Number and Number
new Number(10) + 0 === 10; // True, due to implicit conversion

使用 new 將創造一個新的 Number 對象,而不使用 new,則表現得更像是一個轉換器。

傳遞字面值或非對象值也會造成強制類型轉換的現象。
最好的方法就是顯示地將值轉換為 String,NumberBoolean 三種類型之一。

轉換為字符串 String
"" + 10 === "10"; // true

通過與一個空字符串相加可以很容易轉換為字符串類型。

轉換為數字 Number
+"10" === 10; // true

使用一個加號就可以將值轉換為數字類型。

  

轉換為數字的應用可以參考這個提問:
http://segmentfault.com/q/1010000000476683

轉換為布爾值 Boolean

使用兩次 not 操作符,可以將一個值轉換為布爾值。

!!"foo";   // true
!!"";      // false
!!"0";     // true
!!"1";     // true
!!"-1"     // true
!!{};      // true
!!true;    // true
參考

http://bonsaiden.github.io/JavaScript-Garden/#types.casting

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78098.html

相關文章

  • 細說 Javascript 類型(一) : 相等和比較

    摘要:由于中復雜的類型轉換機制,將會使得由此產生的錯誤變得難以追蹤。此外,類型的強制轉換會對性能也造成一定的影響,例如,當一個字符串與數字進行比較時,會被強制轉換為數字。詳解一下中的比較參考 Javascript 有兩種方法來判斷兩種值是否相等。 相等符號 相等符號由兩個等號組成: ==Javascript 是弱類型語言。這就意味著相等符號為了比較兩個值將會強制轉換類型。 ...

    wthee 評論0 收藏0
  • 細說 Javascript 函數) : ?arguments 對象

    因為最近有博友反饋我的博文是直接翻譯的參考鏈接內的內容,所以我在這里要說明一下,以免引起不必要的誤會。 首先,我很喜歡 segmentfault 的交流和學習的氛圍,所以我很愿意在這里跟各位 SFer 交流學習心得,相互學習,共同進步。 第二,我做技術方面的工作不久,所以學習經歷也不是很長,但是我發現寫博客,總結自己的學習心得是個很好的學習習慣,至少對于我個人而言,我于此收益頗豐,所以我決定堅持一...

    aristark 評論0 收藏0
  • 細說 Javascript 對象(二) : 原型對象

    摘要:并沒有類繼承模型,而是使用原型對象進行原型式繼承。我們舉例說明原型鏈查找機制當訪問一個對象的屬性時,會從對象本身開始往上遍歷整個原型鏈,直到找到對應屬性為止。原始類型有以下五種型。此外,試圖查找一個不存在屬性時將會遍歷整個原型鏈。 Javascript 并沒有類繼承模型,而是使用原型對象 prototype 進行原型式繼承。 盡管人們經常將此看做是 Javascript 的一個缺點,然...

    lansheng228 評論0 收藏0
  • SegmentFault 技術周刊 Vol.32 - 七夕將至,你的“對象”還好嗎?

    摘要:很多情況下,通常一個人類,即創建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    李昌杰 評論0 收藏0
  • SegmentFault 技術周刊 Vol.32 - 七夕將至,你的“對象”還好嗎?

    摘要:很多情況下,通常一個人類,即創建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    Lyux 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<