運(yùn)算符(operator)也被稱作操作符,是用于實(shí)現(xiàn)賦值,比較和執(zhí)行算數(shù)運(yùn)算等功能的符號(hào).
JavaScript中常用的運(yùn)算符有:
- 算數(shù)運(yùn)算符
- 遞增和遞減運(yùn)算符
- 比較運(yùn)算符
- 邏輯運(yùn)算符
- 賦值運(yùn)算符
算數(shù)運(yùn)算符
概念: 算術(shù)運(yùn)算使用的符合,用于執(zhí)行兩個(gè)變量或值的算術(shù)運(yùn)算
運(yùn)算符 | 描述 | 實(shí)例 |
---|---|---|
+ | 加 | 10+20=30 |
- | 減 | 10-20=-10 |
* | 乘 | 10*20=200 |
/ | 除 | 10/20=0.5 |
% | 取余數(shù)(取模) | 返回除法的余數(shù)9%2=1 |
console.log(1 + 1); //2
console.log((1 -1)); //0
console.log(1 * 1); //1
console.log(1 / 1); //1
// 1. %取余
console.log(4 % 2); //0
console.log(5 % 3); //2
浮點(diǎn)數(shù)的精度問題
浮點(diǎn)數(shù)值的最高精度為17位小數(shù),但在進(jìn)行算術(shù)計(jì)算時(shí)其精確度遠(yuǎn)遠(yuǎn)不如整數(shù).
//2.浮點(diǎn)數(shù) 孫淑運(yùn)算里面會(huì)有問題
console.log(0.1 + 0.2); //0.30000000000000004
console.log(0.07*100); //7.000000000000001
所以:不要直接判斷兩個(gè)浮點(diǎn)數(shù)是否相等
//3. 我們不能直接拿著浮點(diǎn)數(shù)進(jìn)行相比較 是否相等
var num= 0.1 + 0.2 ;
console.log(num == 0.3); //false
表達(dá)式和返回值
表達(dá)式:是由數(shù)字掩幢、運(yùn)算符、變量等以能求得數(shù)值的有意義拍了方法所得的組合
簡單解釋: 是由數(shù)字芯丧、運(yùn)算符世曾、變量等組成的式子表達(dá)式最終都會(huì)有一個(gè)結(jié)果,返回給我們,我們稱為返回值
遞增和遞減運(yùn)算符
如果需要反復(fù)給數(shù)字變量添加或減去1,可以是由遞增(++)和遞減(--)運(yùn)算符來完成
在JavaScript中,遞增(++)和遞減(--)既可以放在變量前面,也可以放在變量后面,放在變量后面是,我們可以稱為前置遞增(遞減)運(yùn)算符,放在變量后面時(shí),我們可以稱為后置遞增(遞減)運(yùn)算符
遞增和遞減運(yùn)算符必須和變量配和使用
前置遞增(遞減)運(yùn)算符 ,先加1 ,后返回值
var age = 10;
++age ;
console.log(age); // 11
var p = 10;
console.log(++p + 10 );//21
后置遞增(遞減)運(yùn)算符 ,先返回原值, 后自加1
var age = 10;
age++ ;
console.log(age); // 11
var p = 10;
console.log(p++ + 10 );//20
console.log(p); //11
遞增遞減練習(xí)
var e = 10;
var f = e++ + ++e; // e++ 10 e=11 ++e=12 e=12 10+12=22
console.log(e); //12
console.log(f); //22
比較運(yùn)算符
概念 :比較運(yùn)算符是兩個(gè)數(shù)據(jù)進(jìn)行比較是所使用的運(yùn)算符,比較運(yùn)算后,會(huì)返回一個(gè)布爾值(true/false)作為比較運(yùn)算的結(jié)果
運(yùn)算符名稱 | 說明 | 案例 | 結(jié)果 |
---|---|---|---|
< | 小于號(hào) | 1<2 | true |
> | 大于號(hào) | 1>2 | false |
>= | 大于等于號(hào)(大于或者等于) | 2>=2 | true |
<= | 小于等于號(hào)(小于或者等于) | 3<=2 | false |
== | 判等號(hào)(會(huì)轉(zhuǎn)型) | 37==37 | true |
!= | 不等號(hào) | 37!=37 | false |
=== !== | 全等 要求值和數(shù)據(jù)類型都一致 | 37='37' | false |
=小結(jié)
符號(hào) | 作用 | 用法 |
---|---|---|
= | 賦值 | 把右邊給左邊 |
== | 判斷 | 判斷兩邊值是否相等(注意此時(shí)有隱式轉(zhuǎn)換) |
=== | 全等 | 判斷兩邊的值和數(shù)據(jù)類型是否全相同 |
邏輯運(yùn)算符
概念:邏輯運(yùn)算符是用來進(jìn)行布爾值運(yùn)算的運(yùn)算符,其返回值也是布爾值.經(jīng)常用多個(gè)條件的判斷.
邏輯運(yùn)算符 | 說明 | 案例 |
---|---|---|
&& | '邏輯與',簡稱'與' and | true&&false |
|| | "邏輯或",簡稱'或' or | true||false |
! | "邏輯非",簡稱'非' not | !true |
短路運(yùn)算(邏輯中斷)
短路運(yùn)算原理: 當(dāng)有多個(gè)表達(dá)式(值)時(shí),左邊的表達(dá)式可以確定結(jié)果時(shí),就不在基線運(yùn)算右邊的表達(dá)式的值
邏輯與
- 語法:表達(dá)式1 && 表達(dá)式2
- 如果第一個(gè)表達(dá)式的值為真,則返回表達(dá)式2
- 如果第一個(gè)表達(dá)式的值為假,則返回表達(dá)式1
console.log(123 && 456); //456
console.log(0 && 456); //0
邏輯或
- 語法:表達(dá)式1 || 表達(dá)式2
- 如果第一個(gè)表達(dá)式的值為真,則返回表達(dá)式1
- 如果第一個(gè)表達(dá)式的值為假,則返回表達(dá)式2
console.log(123 || 456); //123
console.log(0 || 456); //456
賦值運(yùn)算符
概念:用來把數(shù)據(jù)賦值給變量的運(yùn)算符
賦值運(yùn)算符 | 說明 | 案例 |
---|---|---|
= | 直接賦值 | var usrName='a'; |
+= -= | 加減一個(gè)數(shù)后再賦值 | var age=10;age+=5 //15 |
*= /= %= | 乘 除 取模后再賦值 | var age=2; age*=5;//10 |
運(yùn)算符優(yōu)先級(jí)
優(yōu)先級(jí) | 運(yùn)算符 | 順序 |
---|---|---|
1 | 小括號(hào) | () |
2 | 一元運(yùn)算符 | ++ -- ! |
3 | 算數(shù)運(yùn)算符 | 先 * / % 后 + - |
4 | 關(guān)系運(yùn)算符 | > >= < <= |
5 | 相等運(yùn)算符 | == != === !== |
6 | 邏輯運(yùn)算符 | 先 && 后 | |
7 | 賦值運(yùn)算符 | = |
8 | 逗號(hào)運(yùn)算符 | , |