最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當前位置: 首頁 - 科技 - 知識百科 - 正文

JavaScript中[1,2]+[3,4]為何不等于[1,2,3,4]的問題解決

來源:懂視網 責編:小采 時間:2020-11-27 20:14:37
文檔

JavaScript中[1,2]+[3,4]為何不等于[1,2,3,4]的問題解決

JavaScript中[1,2]+[3,4]為何不等于[1,2,3,4]的問題解決:問題我想將一個數組追加到另一個數組的后面,于是我在 firebug 編寫如下代碼:[1,2] + [3,4]但是,出乎意料,它卻輸出了:"1,23,4"而沒有輸出我期望的:[1,2,3,4]解答JavaScript 的 + 運算符有兩個目的:將兩個數相加;將兩個字符串連接。規(guī)范并
推薦度:
導讀JavaScript中[1,2]+[3,4]為何不等于[1,2,3,4]的問題解決:問題我想將一個數組追加到另一個數組的后面,于是我在 firebug 編寫如下代碼:[1,2] + [3,4]但是,出乎意料,它卻輸出了:"1,23,4"而沒有輸出我期望的:[1,2,3,4]解答JavaScript 的 + 運算符有兩個目的:將兩個數相加;將兩個字符串連接。規(guī)范并

問題

我想將一個數組追加到另一個數組的后面,于是我在 firebug 編寫如下代碼:

[1,2] + [3,4]

但是,出乎意料,它卻輸出了:

"1,23,4"

而沒有輸出我期望的:

[1,2,3,4]

解答

JavaScript 的 + 運算符有兩個目的:

  • 將兩個數相加;

  • 將兩個字符串連接。

  • 規(guī)范并沒有定義 + 運算符在數組上的行為,所以javascript 首先 把數組轉換成字符串,然后在字符串上進行 + 運算。

    如果想連接兩個數組,可以使用數組的 concat 方法:

    [1, 2].concat([3, 4]) // [1, 2, 3, 4]

    javascript 中的 + 運算符概述

    JavaScript 具有 6 種內置數據類型: (譯注:從給出的連接看,原作者的意思應該是 原始類型系統(tǒng) 的數據類型,JavaScript 事實上有兩套類型系統(tǒng)。 第一套類型系統(tǒng)是用 typeof 來識別,稱之為原始(primitive)類型系統(tǒng),而第二套類型系統(tǒng)是以它為基礎,從 object 這一種類型中發(fā)展起來的,即對象類型系統(tǒng),對象類型系統(tǒng)用 instanceof 來識別。)

  • undefined

  • boolean

  • number

  • string

  • function

  • object

  • 需要注意的是,null [] 是兩個截然不同的類型,當使用 typeof 運算時,它們卻都返回 object。 但是在使用 + 運算符時,在這兩種情況下的工作方式是不同的。

    在JavaScript 中,數組不是基本類型,它的存在僅僅是一個糖衣語法,它其實是 Array 類的實例。(ps:function 其實也是Function 類實例的糖衣語法。)

    如果說道現在你腦子還是清醒的,是時候加點兒猛料了。javascript 的對象包裝器類型例如 new Number(5), new Boolean(true)new String("abc") 也都是 object 類型,它們不是數字,布爾,字符串。然而,對于算數運算符 Number Boolean 表現的為數字。

    還記得我前面說過的 + 運算符嗎?它的操作對象是 數字和字符串,也就是 Number,Boolean,String 或者 number,boolean,string。
    下面的表格就是 + 運算符對于不同類型進行運算后,得到的結果類型

    ----------------------------------------------------------------------------------------
      | undefined | boolean | number | string | function | object | null | array
    ----------------------------------------------------------------------------------------
    undefined | number | number | number | string | string | string | number | string
    boolean | number | number | number | string | string | string | number | string
    
    number | number | number | number | string | string | string | number | string
    
    string | string | string | string | string | string | string | string | string
    function | string | string | string | string | string | string | string | string
    
    object | string | string | string | string | string | string | string | string
    null | number | number | number | string | string | string | number | string
    
    array | string | string | string | string | string | string | string | string
    -------------------------------------------------------------------------------------------

    本表適用于 Chrome 13, Firefox 6, Opera 11 and IE9。課外作業(yè):檢查其他的瀏覽器兼容性。

    注意:用戶自定義對象進行 + 運算不一定總產生一個字符串結果。這主要取決于 對象類型到原生類型轉換 的實現方式。

    例如:

    var o = { 
     valueOf : function () { return 4; } 
    };

    計算 o + 2 將得到 6, 是一個數字 number;計算 o + '2' 得到 ‘42’, 是一個字符串 string。

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    JavaScript中[1,2]+[3,4]為何不等于[1,2,3,4]的問題解決

    JavaScript中[1,2]+[3,4]為何不等于[1,2,3,4]的問題解決:問題我想將一個數組追加到另一個數組的后面,于是我在 firebug 編寫如下代碼:[1,2] + [3,4]但是,出乎意料,它卻輸出了:"1,23,4"而沒有輸出我期望的:[1,2,3,4]解答JavaScript 的 + 運算符有兩個目的:將兩個數相加;將兩個字符串連接。規(guī)范并
    推薦度:
    標簽: 為什么 2 的問題
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top