JavaScript中“+”的解析

    時間:2024-08-13 08:46:29 JavaScript 我要投稿
    • 相關推薦

    JavaScript中“+”的解析

      一、兩個中括號相加

      [] + []

      中括號沒有語句塊的作用,因此這里的兩個中括號就是一個數組。兩個數組(對象類型)相加先要將其轉換成值類型(基本類型)。

      1,轉成值類型調用valueOf,[]的valueOf()還是自己

      復制代碼 代碼如下:

      var arr = [];

      arr.valueOf() === arr; // true

      2,轉成字符串,[]的toString是空字符串

      復制代碼 代碼如下:

      [].toString(); // ""

      String([]) // ""

      結果出來了。兩個空字符串相加,結果仍然是空字符串。即這里的“+”指字符串連接而非數字相加。

      二、大括號和中括號的相加

      復制代碼 代碼如下:

      {} + []

      注意這里的大括號仍然不是對象直接量,而是空語句塊。因此可以去掉它,即相當于

      復制代碼 代碼如下:

      + []

      注意,這時由之前看似的兩個運算數變成了實際的單運算數。而“+”運算符當只有一個運算數時只代表一個意思:算術加運算。即這里沒有字符串連接的意思了。

      中括號的toString()是空字符串,又相當于

      復制代碼 代碼如下:

      + ""

      “+”代表算術加運算,字符串非數字,因此將其轉換成數字類型。空字符串轉成數字類型在上一篇提到過,為0。

      那么最后的結果就是0。

      三、中括號和大括號相加

      復制代碼 代碼如下:

      [] + {}

      與上面的對比,只是中括號和小括號交換了順序。結果卻不相同。大括號放到右邊后,與上面討論的大括號的意義不同了。這里的大括號就是一個對象直接量而非語句塊。

      “+” 兩邊的運算數轉成值類型分別是:"" 和 "[object Object]"。這時 "+" 表示字符串連接。即

      復制代碼 代碼如下:

      "" + "[object Object]"

      結果是 “[object Object]”。

      四、小括號也和它們相加試試

      突發奇想!好吧,小括號雖然有多義性,但它不能作為運算數。

    【JavaScript中“+”的解析】相關文章:

    JavaScript中的with關鍵字07-24

    在Java中執行JavaScript代碼07-14

    Javascript中typeof 用法歸納09-27

    抽象語法樹在JavaScript中的應用08-18

    JavaScript中的三種對象10-24

    perl- javascript中class的機制05-03

    JavaScript中push(),join() 函數實例詳解09-05

    詳解JavaScript中的splice()使用方法08-20

    javascript中for/in循環以及常見的使用技巧06-24

    javascript面向對象中的對象怎么理解09-02

    91久久大香伊蕉在人线_国产综合色产在线观看_欧美亚洲人成网站在线观看_亚洲第一无码精品立川理惠

      亚洲亚洲电影在线观看 | 亚洲日本中文字幕乱码中文 | 亚洲国产精品久久久久久网站 | 在线看片AV观看AV | 在线中文字幕乱码免费视频 | 亚洲欧洲中文字幕gy |