第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

JavaScript 入門教程

JavaScript 算數(shù)運(yùn)算符

算術(shù)運(yùn)算符以數(shù)值(字面量或變量)作為其操作數(shù),并返回一個單個數(shù)值。標(biāo)準(zhǔn)算術(shù)運(yùn)算符是加法(+),減法( - ),乘法(*)和除法(/)?!?MDN

算數(shù)運(yùn)算符是用來做算數(shù)運(yùn)算的,如 + 這個符號,就是用來做加法操作。

1. N元運(yùn)算

N 代表一個數(shù),如一元運(yùn)算,二元運(yùn)算。

N元運(yùn)算 表示由N個值產(chǎn)生一個新的值的規(guī)則。

* 就是一個二元運(yùn)算符,他由兩個數(shù)相乘產(chǎn)生第三個數(shù)。

JavaScript 中有三元運(yùn)算符、二元運(yùn)算符、一元運(yùn)算符。

注意:網(wǎng)絡(luò)上可以搜索到 JavaScript 中有更多元的運(yùn)算,基本上都是使用三目(元)表達(dá)式嵌套來完成的,嚴(yán)格上說這不屬于更多元的運(yùn)算。

與算數(shù)相關(guān)的只有二元與一元運(yùn)算符:

二元運(yùn)算符:

  • + 加法
  • - 減法
  • * 乘法
  • / 除法
  • % 求余
  • ** 冪 (ES2016 提案)

一元運(yùn)算符:

  • + 一元正號
  • - 一元負(fù)號
  • ++ 遞增
  • -- 遞減

2. 二元運(yùn)算符

2.1 加法(+)

加法用來做求和,將 + 左右兩邊的數(shù)值相加,也可以用來連接字符串。

var num1 = 2;
var num2 = 3;

var total = num1 + num2;
console.log(total); // 輸出:5

var firstName = 'hello';
var lastName = 'world';

var name = firstName + ' ' + lastName;
console.log(name); // 輸出:"hello world"

數(shù)字的加法就是和自然數(shù)學(xué)里的加法一樣,做累加操作。

+ 碰到字符串就會把兩邊字符連接到一起,形成一個新的字符串。

2.2 減法(-)

減法操作是將 - 左邊的數(shù)減去 - 右邊的數(shù),結(jié)果就是差值。

var totalApple = 10; // 一共有10個蘋果
var take = 4; // 小明拿走了四個蘋果

var left = totalApple - take; // 還有 10 - 4 個蘋果

console.log(left); // 輸出:6

2.3 乘法(*)

乘法操作將 * 左右兩邊的數(shù)相乘,結(jié)果就是積。

var result = 5 * 6;

console.log(result); // 輸出:30

2.4 除法(/)

除法操作將 / 左邊的數(shù)作為被除數(shù),右邊的數(shù)作為除數(shù),最后求出結(jié)果。

var result = 6 / 2;

console.log(result); // 輸出:3

在許多強(qiáng)類型的語言中,整數(shù)相除即便無法除盡,結(jié)果必然是整數(shù),但在 JavaScript 中,整數(shù)相除如果無法除盡,也會返回小數(shù)部分。

console.log(2 / 5); // 輸出:0.4

上面這個結(jié)果在 Java 中會返回 0,但是在 JavaScript 中會反回 0.4。

注意:如果拿正負(fù) 0 作為除數(shù),則結(jié)果會返回 Infinity 與 -Infinity。

2.5 求余(%)

求余事實(shí)上就是取模運(yùn)算,也就是取余數(shù)。如 8 對 3 取模,結(jié)果為 2,按小學(xué)數(shù)學(xué)中的說法就是 8 除 3 得 2余2,余2就是結(jié)果。

var result = 8 % 3;

console.log(result); // 輸出:2

2.6 冪(**)

冪是 ES2016 提供的新運(yùn)算符,用來做乘方運(yùn)算。

** 左邊是底數(shù),右邊是指數(shù),如 2 ** 3 按數(shù)學(xué)中的表示就是 23,即求 2 的 3 次方。

var total = 2 ** 3; // 2 的 3次方,結(jié)果為 2 * 2 * 2 ,即8

console.log(total); // 輸出:8

在 JavaScript 中的冪運(yùn)算與其他語言有些許區(qū)別,規(guī)范中指出禁止使用帶有歧義的冪運(yùn)算表達(dá)式。

如底數(shù)前不能跟隨一元運(yùn)算符。

console.log(-8 ** 2); // 在JavaScript會報錯

圖片描述

以上冪運(yùn)算是會報錯的,因?yàn)?JavaScript 無法知道是要在計(jì)算完 8 的 2 次方后求反,還是計(jì)算 -8 的 2 次方。

使用括號可以提供具體的意義,消除歧義:

console.log((-8) ** 2); // -8的2次方

console.log(-(8 ** 2)); // 計(jì)算完8的2次方后求反

3. 一元運(yùn)算符

3.1 一元正號

一元正號通常不參與數(shù)學(xué)運(yùn)算,而是用作類型轉(zhuǎn)換,一元正號可以很方便的將其他類型轉(zhuǎn)換成數(shù)字。

var num1 = +3;
var num2 = +'3';
var num3 = +true;
var num4 = +false;
var num5 = +null;
var timestamp = +new Date(); // 直接得到時間戳

3.2 一元負(fù)號

一元負(fù)號也可以將其他類型的數(shù)據(jù)轉(zhuǎn)換成數(shù)字,但是轉(zhuǎn)換完后會在前面加上負(fù)號。

var num1 = -3;
var num2 = -'3';
var num3 = -true;
var num4 = -false;
var num5 = -null;
var timestamp = -new Date();

通常比較多的使用場景是對數(shù)字取反,讓數(shù)值在正負(fù)值切換。

3.3 遞增

遞增操作會讓數(shù)值本身增加 1。

var num = 0;

num++;

console.log(num); // 輸出:1

num++;

console.log(num); // 輸出:2

這樣看,遞增操作有點(diǎn)像x = x + 1這種操作,其實(shí)只有在后置使用時的效果是和x = x + 1一樣的,也就是++x。

前置使用的時候,會先做遞增操作,再返回數(shù)值。

后置使用時候,會先返回數(shù)值,再做遞增操作。

var num = 0;

var total = 1 + (num++);

console.log(total, num); // 輸出:1 1

這個是前置使用的情況,可以看到 num 的值是 1,total 的值也是 1,也就是說 total 再累加的時候?yàn)椋? + 0),這個時候 num 的值為 0,再這個值返回后對 num 進(jìn)行了遞增,所以輸出 num 結(jié)果為 1。

var num = 0;

var total = 1 + (++num);

console.log(total, num); // 輸出:2 1

這個是后置使用的情況,total 輸出結(jié)果為 2,在求和的時候就是(1 + 2),num 是在遞增后再被使用的。

3.4 遞減

遞增操作會讓數(shù)值本身減去 1。

與遞增一樣,遞減也具有前置使用與后置使用的情況。

var num = 1;
var total = 1 + (num--);

console.log(total); // 輸出:2

var num2 = 1;
var total2 = 1 + (--num);

console.log(total2); // 輸出:0

4. 優(yōu)先級

算術(shù)符的優(yōu)先級與自然數(shù)學(xué)中的相似,按照先乘除后加減的規(guī)則來,具體的可以參考下表:

優(yōu)先級 運(yùn)算類型 符號
6 括號 ( … )
5 后置遞增 … ++
后置遞減 … --
4 一元加法 + …
一元減法 - …
前置遞增 ++ …
前置遞減 -- …
3 … ** …
2 乘法 … * …
除法 … * …
取模 … % …
1 加法 … + …
減法 … - …

括號 > 后置遞增/后置遞減 > 一元加法/一元減法/前置遞增/前置遞減 > > 乘法/除法/取模 > 加法/減法

可以見到,括號的優(yōu)先級是最高的,所以建議在自己不確定優(yōu)先級的時候,盡量使用括號決定優(yōu)先級。

如:

var res = 1 + 2 / 3 * 4 % 5 ** 7;

上面這個表達(dá)式的運(yùn)算順序,即便是知道優(yōu)先級,也不是一眼就能看出來的,所以建議即便是知道優(yōu)先級,也使用括號將計(jì)算順序做區(qū)分。

將想要的計(jì)算順序用括號包裹后:

var res = 1 + (((2 / 3) * 4) % (5 ** 7));

4. 小結(jié)

算數(shù)運(yùn)算符主要參與運(yùn)算,N 元運(yùn)算就是用 N 個值產(chǎn)生一個新的值,運(yùn)算符有自己的特性和優(yōu)先級,當(dāng)表達(dá)式較長的時候,建議使用括號包裹來控制執(zhí)行順序。