国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript中“+”的陷阱深刻理解

2024-05-06 14:20:44
字體:
來源:轉載
供稿:網友
一、兩個中括號相加
[] + []
中括號沒有語句塊的作用,因此這里的兩個中括號就是一個數組。兩個數組(對象類型)相加先要將其轉換成值類型(基本類型)。
1,轉成值類型調用valueOf,[]的valueOf()還是自己
代碼如下:
var arr = [];
arr.valueOf() === arr; // true

2,轉成字符串,[]的toString是空字符串
代碼如下:
[].toString(); // ""
String([]) // ""

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

二、大括號和中括號的相加
代碼如下:
{} + []

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

注意,這時由之前看似的兩個運算數變成了實際的單運算數。而“+”運算符當只有一個運算數時只代表一個意思:算術加運算。即這里沒有字符串連接的意思了。
中括號的toString()是空字符串,又相當于
代碼如下:
+ ""

“+”代表算術加運算,字符串非數字,因此將其轉換成數字類型??兆址D成數字類型在上一篇提到過,為0。
那么最后的結果就是0。

三、中括號和大括號相加
代碼如下:
[] + {}

與上面的對比,只是中括號和小括號交換了順序。結果卻不相同。大括號放到右邊后,與上面討論的大括號的意義不同了。這里的大括號就是一個對象直接量而非語句塊。
“+” 兩邊的運算數轉成值類型分別是:"" 和 "[object Object]"。這時 "+" 表示字符串連接。即
代碼如下:
"" + "[object Object]"

結果是 “[object Object]”。

四、小括號也和它們相加試試
突發奇想!好吧,小括號雖然有多義性,但它不能作為運算數。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 曲阜市| 镇巴县| 保亭| 左云县| 柳州市| 兴国县| 呼图壁县| 芷江| 铁岭市| 红河县| 庄浪县| 吉林省| 芜湖县| 宁陵县| 平安县| 育儿| 葵青区| 内黄县| 高雄市| 黎川县| 敖汉旗| 涞源县| 阜宁县| 钦州市| 阿克陶县| 永吉县| 科尔| 洛浦县| 新和县| 鹤山市| 金阳县| 泊头市| 渭源县| 普安县| 灵川县| 莎车县| 山东| 静宁县| 宁晋县| 永清县| 关岭|