亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么[1,2]+[3,4]=“1,23,4”在JavaScript中?

為什么[1,2]+[3,4]=“1,23,4”在JavaScript中?

HUWWW 2019-07-22 15:39:44
為什么[1,2]+[3,4]=“1,23,4”在JavaScript中?我想將數組的元素添加到另一個數組中,因此我嘗試了以下方法:[1,2] + [3,4]它的答復是:"1,23,4"怎么一回事?
查看完整描述

3 回答

?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

JavaScript的+運算符有兩個用途:添加兩個數字或連接兩個字符串。它對數組沒有特定的行為,所以它將它們轉換為字符串,然后加入它們。

如果要連接兩個數組以生成一個新數組,請使用這個.concat方法相反:

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

如果要有效地將所有元素從一個數組添加到另一個數組,則需要使用.Push方法:

var data = [1, 2];// ES6+:data.push(...[3, 4]);// or legacy:Array.prototype.push.apply(data, [3, 4]);// data is now [1, 2, 3, 4]

的行為+運算符定義為ECMA-262 5E第11.6.1節:

11.6.1加法運算符(+)

加法運算符執行字符串連接或數字加法。生產AdditiveExpression : AdditiveExpression + MultiplicativeExpression評價如下:

  1. 放任

    lref

    是評價的結果

    AdditiveExpression.

  2. 放任

    lval

    GetValue(lref).

  3. 放任

    rref

    是評價的結果

    MultiplicativeExpression.

  4. 放任

    rval

    GetValue(rref).

  5. 放任

    lprim

    ToPrimitive(lval).

  6. 放任

    rprim

    ToPrimitive(rval).

  7. 如果

    Type(lprim)

    String

    Type(rprim)

    String

    ,然后
    1. 返回連接的結果字符串。

      ToString(lprim)

      緊隨其后

      ToString(rprim)

  8. 返回將加法操作應用到

    ToNumber(lprim)

    ToNumber(rprim)

    ..見下面的說明11.6.3。

您可以看到每個操作數都被轉換。ToPrimitive..通過進一步的閱讀,我們可以發現ToPrimitive將始終將數組轉換為字符串,從而產生此結果。


查看完整回答
反對 回復 2019-07-22
?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

這個+串接字符串,因此它將數組轉換為字符串。

[1,2] + [3,4]'1,2' + '3,4'1,23,4

若要組合數組,請使用concat.

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


查看完整回答
反對 回復 2019-07-22
  • 3 回答
  • 0 關注
  • 412 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號