<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # 說明 所有的對象都繼承有toString() 和 valueOf() 方法,對象到字符串,對象到數字的轉換,會通過調用待轉換對象的這兩個方法中的一個來完成。 <br> <br> # 解釋 ## toString( )方法的作用是: 返回一個反映這個對象的字符串,而很多類都定義了不同版本的toString( )。 ![](https://img.kancloud.cn/2f/c9/2fc9ca38c392269e56b377ab4ee62d68_668x384.png) ~~~ ({}.toString()); //=> "[object Object]" [1,2].toString(); //=> "1,2" true.toString(); //=> "true" new Date(1970,0,1).toString(); //=> "Thu Jan 01 1970 00:00:00 GMT+0800 (CST)" Error("一個錯誤信息").toString(); //=> "Error: 一個錯誤信息" (function (x){return x}).toString(); //=> "function (x){return x}" /\d/.toString(); //=> "/\\d/" 或者 "/\d/" 瀏覽器不同返回也可能會不同 ~~~ <br> <br> ## valueOf() 方法,它的作用是: 如果對象存在任意原始值,它就默認將對象轉換為表示它的原始值,如果對象是復合值,而且大多數對象無法真正表示為一個原始值,因此默認的valueOf( )方法簡單地返回對象本身,而不是返回一個原始值。 <br> <br> 數組、函數、和正則表達式簡單的繼承了這個默認方法,調用這些類型的實例的valueOf( )方法只是簡答返回對象本身。 <br> <br> 日期類定義的valueOf( )方法會返回它的一個內部表示:1970年1月1日以來的毫秒數。 ~~~ [1,2].valueOf(); //=> [1,2] (function (){}).valueOf(); //=> function (){} /\d/.valueOf(); //=> /\d/ new Date().valueOf(); //=> 1502941383029 ~~~ 原始值:不可變更的值,包括undefined、null、布爾值、數字、和字符串。 看下面這張圖,列出了一些基本的類型轉換,這張圖來自 JavaScript權威指南。 ![](https://img.kancloud.cn/d9/0f/d90f539b29bfc85f979bf9a2b6af4e41_643x510.png) <br> <br> 好了,我們現在已經了解toString( )方法 和 valueOf( )方法了,下來我們來說說,對象到字符串和對象到數字的轉換。 <br> <br> ## 對象到字符串的轉換: 1、如果對象具有toString( )方法,則調用這個方法。如果她返回一個原始值,JavaScript將這個值轉換為字符串(如果本身不是字符串的話),并返回這個字符串結果。 2、如果對象沒有toString( )方法,或者這個方法并不返回一個原始值,那么JavaScript會調用valueOf( )方法。如果存在這個方法,則JavaScript調用它。如果返回值是原始值,JavaScript將這個值轉換為字符串(如果本身不是字符串的話),并返回這個字符串結果。 3、否則,JavaScript無法從toString()或者valueOf( )獲得一個原始值,因此這時它將拋出一個類型錯誤異常。 ![](https://img.kancloud.cn/b6/e7/b6e7b79be7c10b7001d03af516a7960c_538x160.png) <br> <br> ## 對象到數字的轉換: 1、如果對象具有valueOf( )方法,后者返回一個原始值,則JavaScript將這個原始值轉換為數字(如果需要的話)并返回這個數字。 2、否則,如果對象具有toString( )方法,后者返回一個原始值,則JavaScript將其轉化并返回。 3、否則,JavaScript拋出一個類型錯誤異常。 ![](https://img.kancloud.cn/44/c0/44c011cb70cb257824e2d5f88c51b442_535x161.png) **所以這就解釋了,為什么空數組會被轉換為數字0,為什么具有單個元素的數組同樣會轉換成一個數字。** 數組繼承了默認的valueOf( )方法,這個方法返回一個對象而不是一個原始值,因此,數組到數字的轉換則調用toString( )方法。空數組轉換為空字符串,空字符串轉換為數字0。 含有一個元素的數組轉換為字符串的結果和這個元素轉換字符串的結果一樣。 如果數組只包含一個數字元素,這個數字轉換為字符串,在轉換回數字。 <br> <br> JavaScript中的"+"運算符可以進行數學加法和字符串連接操作。如果它的其中一個操作數是對象,則JavaScript將使用特殊的方法將對象轉換為原始值,而不是使用其他算術運算符的方法執行對象到數字的轉換,"= ="相等運算符與此類似。如果將對象和一個原始值比較,則轉換將會遵照對象到原始值的轉換方式進行。 <br> <br> "+" 和 "= ="應用的對象到原始值的轉換包含日期對象的一種特殊情形。日期類是JavaScript語言核心中唯一的預先定義類型,它定義了有意義的向字符串和數字類型的轉換。 對于所有非日期的對象來說,對象到原始值的轉換基本上是對象到數字的轉換(首先調用valueOf( )),日期對象則使用對象到字符串的轉換模式,然而,這里的轉換和上文講述的并不完全一致:通過valueOf( )或者toString( )返回的原始值將被直接使用,而不會被強制轉換為數字或字符串。 <br> <br> 和"= ="一樣,"<"運算符以及其他關系運算符也會做對象到原始值的轉換,但要除去日期對象的特殊情形:任何對象都會首先嘗試調用valueOf( ),然后調用toString( )。不管得到的原始值是否直接使用,它都不會進一步被轉換為數字或字符串。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看