JavaScript運算子詳解

來源:互聯網
上載者:User

核心提示:javascript具有下列種類的運算子:算術運算子;等同運算子與全同運算子;比較子;

  1、javascript具有下列種類的運算子:算術運算子;等同運算子與全同運算子;比較子;

  2、目的分類:字串運算子;邏輯運算子;逐位元運算符;賦值運算子;

  3、特殊運算子:條件運算子;typeof運算子;建立對象運算子new;delete運算子;void運算子號;逗號運算子;

  算術運算子:+ 、 - 、* 、 / 、 % 、 -(一元取反) 、 ++ 、 --

  等同運算子與全同運算子:== 、 ===、 !== 、 !===

  比較子:< 、 > 、 <= 、 >=

  字串運算子::< 、 > 、 <= 、 >= 、 = 、 +

  邏輯運算子:&& 、 、 !、

  賦值運算子:=、 +=、 *=、 -=、 /=

  規則:

  一、一定要注意傳遞給運算子的資料類型和返回的資料類型!不同的運算子都期望它的運算數運算式計算出的結果符合某種資料類型。

  例如:對字串是不能進行乘法運算的,"a" * "b" 是不合法的,但是,在可能的情況下,javascript會把運算式轉換成正確的類型,因此,運算式 "3" * "5" 是合法的,javascript將字串轉換成數字執行運算,結果返回的是數字15,而不是字串"15"。

  二、+ 根據運算數的不同,具有不同的表現:

  字串 + 字串 = 字串(被串連);"a" + "b" = "ab" "5" + "6" = "11"

  字串 + 數字 = (字串轉換成數字)字串(被串連);"a" + 5 = "a5" 5被轉換成字串 "1" + 0 = "10"

  數字 + 數字 = 數字(相加)5 + 5 = 10。

  三、注意運算子的結合性,有些運算子從左至右的結合性;有些從右至左結合性。

  例如:w = a + b + c 等同於 w = (a + b) + c;

  w = ---b 等同於 w = - ( - ( -b ) ); w = a = b = c 等同於 w= ( a = ( b = c ))

  一元運算子、賦值運算子、三元運算子的結合性是從右至左的;

  四、算術運算子規則:

  “+”:可以進行“加法”與“串連”運算;如果2個運算子中的一個是字串,javascript就將另一個轉換成字串,然後將2個運算數串連起來。

  “+”:如果一個運算數是對象,javascript就會將對象轉換成數字做加法運算或者字串做串連運算;

  “-”“*”“/” 如果2個運算數中的一個是是非數字,則將它轉化成數字執行數學運算。

  “/” 在javascript中,由於所有的數都是浮點數,除法的結果都是浮點數,5 / 2 = 2.5 ;除數為0的結果為正負無窮;0/0為NaN;

  “%”模運算子:計算第一個運算數對第二個運算數的模,就是第一個運算數被第二個運算數除時,返回餘數。如果運算數是非數位,則轉換成數字。

  “-”一元取反:將運算數取反,如果運算數不是數字,則轉化成數字。

  “++”“--”遞增運算子/遞減運算子號:運算數必須是一個變數、樹組的一個元素或對象的一個屬性。如果運算數不是數字,則轉換成數字。

  注意:如果“++”位於運算數之前,先對運算數進行增量,然後計算運算數增長後的值。

  如果“--”位於運算數之後,先計算運算數未增長之前的值,然後對運算數增量。

  例如:i = 1; //賦值給i值1

  j = ++i; //先將i增量為2,然後將2賦值給j,i的值是2,j的值也是2。

  i = 1; //賦值給i值1

  j = i++; //先將i賦值給j,然後對將i值增量到2,i的值是2,j的值是1。

  遞減運算子“--”與“++”相同。

  五、等同運算子與全同運算子:

  (一)“==”“!==”等同運算子與非等同運算子:

  比較2個運算數,返回一個不布爾值。

  比較數值、字串、布爾值使用的都是量值。若且唯若兩個變數存放的值相等的時候,他們才相等。

  比較對象、數組、函數的時候,使用的是引用,只有2個變數引用的是同一個對象時,他們才是相等的

  。兩個不同的數組是完全不同的,即使他們具有完全相同的元素。對於存放對象、數組、函數的引用的變數來

  說,只有當他們引用的是同一個對象、數組、函數的時候,他們才相等。

  注意!應遵循的原則:

  當兩個運算數的類型不同時:將他們轉換成相同的類型,

  1)一個數字與一個字串,字串轉換成數字之後,進行比較。

  2)true轉換為1、false轉換為0,進行比較。

  3)一個對象、數組、函數 與 一個數字或字串,對象、數組、函數轉換為原始類型的值,然後進行比較。(先使用valueOf,如果不行就使用toString)

  4)其他類型的組合不星等。

  想兩個運算數類型相同,或轉換成相同類型後:

  1)2個字串:同一位置上的字元相等,2個字串就相同。

  2)2個數字:2個數字相同,就相同。如果一個是NaN,或兩個都是NaN,則不相同。

  3)2個都是true,或者2個都是false,則想同。

  4)2個引用的是同一個對象、函數、數組,則他們相等,如果引用的不是同一個對象、函數、數組,則不相同,即使這2個對象、函數、數組可以轉換成完全相等的原始值。

  5)2個null,或者2個都是未定義的,那麼他們相等。

  “!=”非等同運算子:與等同運算子檢測的結果相反。

  (二)“===”“!===”全同運算子與非全同運算子號:

  全同運算子遵循等同運算子的比較規則,但是它不對運算數進行類型轉換,當兩個運算數的類型不同時,返回false;只有當兩個運算數的類型相同的時候,才遵循等同運算子的比較規則進行比較。

  “!==”非全同運算子與全同運算子比較的結果相反。如果兩個運算數的類型或者值不同的時候,返回true。

1 2 下一頁 >全文閱讀 提示:試試"← →"鍵,翻頁更方便哦!

[1] [2]  下一頁



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.