js運算符篇

最特殊的加法運算符, 有兩個做用,字符串鏈接和加法做用。數組

1.若是運算子是對象,先自動轉成原始類型的值(即先執行該對象的valueOf方法,若是結果還不是原始類型的值,再執行toString方法;若是對象是Date實例,則先執行toString方法)。 2.兩個運算子都是原始類型的值之後,只要有一個運算子是字符串,則兩個運算子都轉爲字符串,執行字符串鏈接運算。 3.不然,兩個運算子都轉爲數值,執行加法運算。函數

1+1  //2
true + true //2
1+true //2

1+{a:2}   //"1[object Object]"
'1'+true // "1true"
1+[1];   //"11"
[1, 2] + [3]   // "1,23"

加法運算符必定有左右兩個運算子,若是隻有右邊一個運算子,就是另外一個運算符啦,叫「數值運算符code

+ -1    // -1
+"2"  // 2

只有左邊一個運算子,則報錯。對象

加法運算符之外的其餘算術運算符(好比減法、除法和乘法),它們的規則是:全部運算子一概轉爲數值,再進行相應的數學運算。字符串

餘數運算符: 運算結果的正負號由第一個運算子的正負號決定數學

-1 % 2 // -1
1 % -2 // 1

自增、自減運算符變量

自增和自減運算符,是一元運算符,只須要一個運算子。它們的做用是將運算子首先轉爲數值,而後加上1或者減去1。它們會修改原始變量。object

數值運算符 數值運算符的做用在於能夠將任何值轉爲數值,至關於Number函數 。方法

比較運算符: -若是兩個運算子都是字符串,則按照字典順序比較(其實是比較Unicode碼點)。 -不然,將兩個運算子都轉成數值,再進行比較(等同於先調用Number函數) -兩個複合類型(對象、數組、函數)的數據比較時,不是比較它們的值是否相等,而是比較它們是否指向同一個對象。數據

相關文章
相關標籤/搜索