首頁 >web前端 >js教程 >javascript基礎課程之算數表達式定義用法詳解

javascript基礎課程之算數表達式定義用法詳解

伊谢尔伦
伊谢尔伦原創
2017-07-19 10:10:581442瀏覽

基本的算術運算子是*、/、%、+、-。除了+加法,其它的運算子特別簡單,只是在必要的時候操作符轉化為數字而已,然後求積、商、餘(模)和差。所有那些無法轉換為數字的操作都將轉換為NaN值。如果運算元(或轉換結果)是NaN值,算術運算結果也是NaN

運算子「/」用第二個運算元來除以第一個運算元,如果你有使用過那些區分整數型和浮點數型的程式語言。那麼用一個整數除以一個整數時,則希望得到的結果也是整數。在javascript中所有的數字都是浮點數型的,除法運算的結果也是浮點型。例如5/2結果是2.5,而不是2。除數為0的運算結果為正無窮大或負無窮大。而0/0的結果是NaN。所有這些運算均不會報錯。

運算子「%」計算的是第一個操作數對第二個操作數的模,換句話說,就是第一個操作數除以第二個操作鼠的餘數。結果的符號和第一個操作鼠(被除數)符號保持一致。例如5%2的結果為1,-5%2為-1。

求餘運算子的運算元通常都是整數,但也適用於浮點數。 6.5%2.1結果是0.2。 (0.19999999999999973)

i.「+」運算子

二元加法運算子「+」可以對兩個數字做加法,也可以做字串連線運算:

1+2 //=> 3
"hello" + "" + "there" // =>"hello there"
"1"+"2" //=>"12"

當兩個運算元都是數字或都是字串的時候,計算結果是顯而易見的。然而對於其他情況來說,則要進行一些必要的類型轉換。並且運算符的行為依賴於類型的轉換的結果。從技術上來講,加法操作符的行為表現為:

如果一個操作數是對象,則對象會遵循對像到原始值的轉換規則為原始類值(參考3章8節3小節) 。日期對物件toString()方法執行轉換,其他物件則透過valueOf()方法執行轉換(如果valueOf()方法傳回一個原始值的話)。由於多數物件都不具備可用的valueOf()方法,因此他們會透過toString()方法來執行抓換
在進行了物件到原始值的轉換後,如果其中一個操作鼠是字串的話,另一個操作數也會轉換為字串。然後進行字串連接。
否則,兩個運算元都會轉換為數字(或NaN),然後進行加法運算。
這裡有一些例子

1 + 2 //=>3 加法
"1" + "2" //=>"12" 字符串连接
"1" + 2 //=>"12"数字转换为字符串后进行字符串连接
1 + {} //=>"1[object object]":对象转换为字符串后进行字符串连接
true + true //=>2 布尔值转换为数字后做加法
2 + null //=>2 null转换为0后做加法
2 + undefined //=>NaN undefined转换为NaN做加法

最後,特別要注意的是。當加號運算符合字串一起使用時,要考慮加法對運算順序的影響。也就是說,運算結果是依賴運算子的運算順序的,例如

1 + 2 + "bmice" //=> "3 bmice"
1 + (2 + "bmice") => "12bmice"

ii.一元運算子

一元運算子作用於一個單獨的運算元。並產生一個新值。在javascript中,一元運算子具有很高的優先級,而且都是右邊結合。本節講述一元運算子(+,-,++和--),必要時,他們將操作轉換為數字。要注意的是+ -是一元運算符,也是二元運算子、

一元加法+

          一元加法運算子把運算元轉換為數字(或NaN),且傳回這個轉換後的數字。如果運算元本身就是數字,則直接傳回這個數字。

一元減法-

           當-號做一元運算子時,它會根據需要將運算元轉換為數字,然後改變運算結果的符號、

遞增+ +

           增加增加「++」運算子對其運算元進行增量(+1)的運算,操作數一個左值(變數、陣列元素或物件屬性)。運算子將操作數轉換為數字。然後給數字加1、並將加1後的數值重新賦值給變數、陣列元素或物件屬性。

           增加++ 運算回傳值依賴它對運算元的位置。

           當運算子在運算元數之前,稱為「前增量」(pre-increment)運算符,它對運算元進行增量計算,並傳回計算後的值。

           當運算子在操作數之後,稱為"後增量"(post-increment)運算符,它對運算元進行增量計算,但返回為做增量計算的(unincremented)值。如

            var i = 1,j = ++i //i和j的值都是2
           jj = i++; #要注意的是,便打算++x並總和x=x+1完全一樣,「++」運算子從不進行字串連接操作,它總會將操作數轉換為數字並增加1.如果x是字串“1”,++x的結果就是數字2,而x+1是字串"11"

遞減和遞增的操作方式是同樣的,它把操作數轉換為數組,然後減1.

iii.位元運算子

位元運算子可以對數字表示的二進位資料進行較低層級的位元運算。儘管它們不是傳統的純數學運算,但這裡也歸類為算術運算符,因為他們作用於數值類型的操作並傳回數字。

以上是javascript基礎課程之算數表達式定義用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn