首頁  >  文章  >  web前端  >  javascript算術運算子有哪些

javascript算術運算子有哪些

青灯夜游
青灯夜游原創
2021-07-16 11:22:465132瀏覽

javascript算術運算子有:加法運算子“ ”,減法運算子“-”、乘法運算子“*”、除法運算子“/”、求餘運算子“%”、遞增運算符「 」、遞減運算子「--」、冪運算子「**」。

javascript算術運算子有哪些

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

算術運算子用於對數字(文字或變數)執行算術運算。標準算術運算子是加法 ,減法 -,乘法 * 和除法 /。和數學裡面的加減乘除很類似,我們一起來看看。

加法運算子

加法運算子 的作用是數值求和,這個應該很簡單。

範例:

下面是簡單的求兩數總和:

var a = 8;
var b = a + 5;
console.log(b);  // 13

激發運算子除了計算兩數總和,我們可以透過 連接字串,得到的結果是一個新的字串。

範例:

使用 將定義好的三個變數連接:

str1 = "hello";
str2 = "xkd";
str3 = " ";
console.log(str1 + str3 + str2);  // 输出: hello xkd

除此之外,數字和一個字串也可以透過 加號連接,回傳結果同樣為一個字串。

範例:

看一下數字與數字相加,數字與字串相加有什麼不同:

num1 = 10;
num2 = 15;
str1 = "15"

console.log(num1 + num2 );  // 输出: 25
console.log(num1 + str1 );  // 输出:1015

注意在某些編程語言(例如Python)中不同類型是不能相加的,例如數字加字串會報錯。而 JavaScript 中數字和字串相加,回傳一個字串。

減法運算子

減法運算子 - 可以用於兩個運算元相減,結果為它們的差值。

範例:

var c = 8;
var d = c - 5;
console.log(d);  // 3

在減法運算中,如果運算元為字串,先試著把它轉換為數值,再進行運算。如果有一個操作數不是數字,則傳回 NaN。

範例:

console.log(2 - "1");  //返回1
console.log(2 - "a");  //返回NaN

使用值減去 0,可以快速把值轉換為數字。例如 HTTP 請求中查詢字串一般都是字串型數字,可以先把這些參數值減去 0 轉換為數值。這與呼叫 parseFloat() 方法的結果相同,但減法更有效率、更快速。減法運算子的隱性轉換如果失敗,則傳回 NaN,這與使用 parseFloat() 方法執行轉換時的回傳值是不同的。

例如,對於字串「100aaa」而言,parseFloat() 方法能夠解析出前面幾個數字,而對於減法運算子來說,則必須是完整的數字,才可以進行轉換。

console.log(parseFloat("100aaa"));  //返回100
console.log("100aaa" - 0);  //返回NaN

對布林值來說,parseFloat() 方法能夠把 true 轉換為 1,把 false 轉換為 0,而減法運算子視其為 NaN。

對於物件來說,parseFloat() 方法會嘗試呼叫物件的toString() 方法轉換,而減法運算子先嘗試呼叫物件的valueOf() 方法轉換,失敗之後再呼叫toString()進行轉換。

注意特殊運算元的減法運算。

var n = 5;  //定义并初始化任意一个数值
console.log(NaN - n);  //NaN与任意操作数相减,结果都是NaN
console.log(Infinity - n);  //Infinity与任意操作数相减,结果都是Infinity
console.log(Infinity - Infinity);  //Infinity与Infinity相减,结果是NaN
console.log((-Infinity) - (-Infinity));  //负Infinity相减,结果是NaN
console.log((-Infinity) - Infinity);  //正负Infinity相减,结果是-Infinity

取反運算

注意特殊運算元的取反運算

console.log(- 5);  //返回-5。正常数值取负数
console.log(- "5");  //返回-5。先转换字符串数字为数值类型
console.log(- "a");  //返回NaN。无法完全匹配运算,返回NaN
console.log(- Infinity);  //返回-Infinity
console.log(- (- Infinity));  //返回Infinity
console.log(- NaN);  //返回NaN

#乘法運算子

乘法運算子* 的結果是運算元的乘積。

範例:

var e = (8 + 5) * 3;
var f = 'xkd' * 3;
console.log(e);  // 输出:39
console.log(f);  // 输出:NaN

如果我們使用字串與一個數字相乘,最終傳回一個NaN,即非法數。

除法運算子

除法運算子/ 的結果是運算元的商,左運算元是被除數,右邊運算子是除數。

範例:

var g = (9 - 3) / 3;
var h = 3.0 / 1.0;
var i = 1 / 2;

console.log(g);  //输出:2
console.log(h);  //输出:3
console.log(i);  //输出:0.5

我們要注意的是,在JavaScript 中1 / 2 這個結果帶小數點的運算,結果會帶小數點,例如0.5。而在 Java 等語言中,不需要數字是明確的浮點數,1 / 2 的回傳結果為0。

求餘運算子

百分號%# 是求餘運算符,傳回第一個運算元對第二個運算元的模(餘數),例如x % y,得到的結果是x 除以y 的整數餘數。餘數大家應該知道,我們在數學中也學過,就是指整數觸發中被除數未被除盡的部分。

範例:

例如下面這段程式碼:

var m = 9;
var n = 2;
var mn = m % n;
console.log(mn);  //输出: 1

輸出結果為1,這其實很好理解,9 % 2 就是求9 除以2 的餘數,就是1。

那麼如果是 12 % 5 呢,輸出結果會是什麼? 12除以5會餘2,所以結果結果為2。現在你應該知道 % 要怎麼使用了吧。

遞增運算子

遞增運算子 為其運算元增加1,並傳回一個數值。如果使用後置,如x ,將會在遞增前傳回數值。若前置,如 x,遞增後將會傳回數值。

範例:

#

假设我们定义了一个变量 i,然后使用自增运算符对 i 进行递增运算,将递增后的 i 赋值给了变量 j,最终j 的输出结果为 6:

var i = 5;
i++;
var j = i;
console.log(j);  // 6

那为什么结果会是6呢,i++ 其实就是表示在 i 的基础上加一,相当于i + 1

然后我们看一下递增运算符前置和后置,到底有什么区别,例如下面这个代码:

var a = 9;
console.log(a++);  // 输出:9

console.log(a);    // 输出:10

console.log(++a);  // 输出:11
  • 变量 a 的值为9,然后使用后置递增运算符a++,第一次输出会在递增之前就返回数值,即输出结果还是 9。
  • 然后此时输出 a 的值,可以看到 a 的值已经为10了,因为已经执行了一次递增运算符,所以加 1。
  • 接着第三次输出时,使用前置递增运算符,这会在递增之后才返回数值,即输出结果为11。

递减运算符

递减运算符 -- 为其操作数减去1,并返回一个数值。递减运算符和递增运算符的使用方法差不多,一个是减、一个是加,正好相反。

如果后置使用递减运算符,则在递减之前返回数值。如果前置使用,则在递减之后返回数值。

示例:

var b = 7;
console.log(b--);  // 输出:7

console.log(b);    // 输出:6

console.log(--b);  // 输出:5
  • 变量b的值为7,然后使用后置递减运算符b--,会在递减之钱返回数值,即7。
  • 然后第二次输出变量b,此时已经成功执行b-- ,会在此基础上减1,所以输出6。
  • 第三次输出--b,使用后置递减运算符,会在递减之后返回数值,所以会输出5。

幂运算符

幂运算符 ** 返回第一个操作数做底数,第二个操作数做指数的乘方。例如5 ** 2 表示 5 的 2 次方,根据所学数学知道就能得出结果为25。

示例:

下面这个代码表示求 6 的 3 次方,相当于 6 * 6 * 6,结果为216:

var x = 6;
var y = x ** 3;
console.log(y);  // 216

上面的运算出的结果与 Math.pow(x, y) 是相同的,例如:

var x = 6;
var y = Math.pow(x,3);
console.log(y);  // 216

pow()方法可返回 x 的 y 次幂的值。

【推荐学习:javascript高级教程

以上是javascript算術運算子有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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