運算符
運算符也叫操作符
通過運算符可以對一個或多個值進行運算,并獲取運算結(jié)果
比如:typeof就是運算符薇芝,可以來獲得一個值的類型蓬抄,它會將該值的類型以字符串的形式返回
"number" "string" "boolean" "undefined" "object"
算數(shù)運算符
當(dāng)對非Number類型的值進行運算時,會將這些值轉(zhuǎn)換為Number然后在運算
任何值和NaN做運算都得NaN
+
+可以對兩個值進行加法運算夯到,并將結(jié)果返回
如果對兩個字符串進行加法運算嚷缭,則會做拼串,會將兩個字符串拼接為一個字符串耍贾,并返回
任何的值和字符串做加法運算阅爽,都會先轉(zhuǎn)換為字符串,然后再和字符串做拼串的操作
-
- 可以對兩個值進行減法運算荐开,并將結(jié)果返回
*
* 可以對兩個值進行乘法運算
/
/ 可以對兩個值進行除法運算
%
% 取模運算(取余數(shù))
任何值和字符串相加都會轉(zhuǎn)換為字符串付翁,并做拼串操作
我們可以利用這一特點,來將一個任意的數(shù)據(jù)類型轉(zhuǎn)換為String
我們只需要為任意的數(shù)據(jù)類型 + 一個 "" 即可將其轉(zhuǎn)換為String
這是一種隱式的類型轉(zhuǎn)換晃听,由瀏覽器自動完成百侧,實際上它也是調(diào)用String()函數(shù)
任何值做- * /運算時都會自動轉(zhuǎn)換為Number
我們可以利用這一特點做隱式的類型轉(zhuǎn)換
可以通過為一個值 -0 *1 /1來將其轉(zhuǎn)換為Number
原理和Number()函數(shù)一樣砰识,使用起來更加簡單
一元運算符
一元運算符,只需要一個操作數(shù)
+ 正號
- 正號不會對數(shù)字產(chǎn)生任何影響
- 負(fù)號
- 負(fù)號可以對數(shù)字進行符號的取反
- 對于非Number類型的值佣渴,它會將先轉(zhuǎn)換為Number辫狼,然后再運算
- 可以對一個其他的數(shù)據(jù)類型使用+,來將其轉(zhuǎn)換為number,它的原理和Number()函數(shù)一樣
自增和自減
自增 ++
- 通過自增可以使變量在自身的基礎(chǔ)上增加1
- 對于一個變量自增以后辛润,原變量的值會立即自增1
- 自增分成兩種:后++(a++) 和 前++(++a)
無論是a++還是++a膨处,都會立即使原變量的值自增1
不同的是a++和++a的值不同
a++的值等于原變量的值(自增前的值)
++a的值等于新值 (自增后的值)
自減 --
- 通過自減可以使變量在自身的基礎(chǔ)上減1
- 自減分成兩種:后--(a--) 和 前--(--a)
無論是a--還是--a都會立即使原變量的值自減1
不同的是a-- 和 --a的值不同
a-- 是變量的原值 (自減前的值)
--a 是變量的新值 (自減以后的值)
自增自減聯(lián)系
邏輯運算符
JS中為我們提供了三種邏輯運算符
! 非
- !可以用來對一個值進行非運算
- 所謂非運算就是值對一個布爾值進行取反操作,
true變false砂竖,false變true
- 如果對一個值進行兩次取反真椿,它不會變化
- 如果對非布爾值進行元素,則會將其轉(zhuǎn)換為布爾值晦溪,然后再取反
所以我們可以利用該特點瀑粥,來將一個其他的數(shù)據(jù)類型轉(zhuǎn)換為布爾值
可以為一個任意數(shù)據(jù)類型取兩次反,來將其轉(zhuǎn)換為布爾值三圆,原理和Boolean()函數(shù)一樣
&& 與
- &&可以對符號兩側(cè)的值進行與運算并返回結(jié)果
- 運算規(guī)則
- 兩個值中只要有一個值為false就返回false狞换,
只有兩個值都為true時,才會返回true
- JS中的“與”屬于短路的與舟肉,
如果第一個值為false修噪,則不會看第二個值
|| 或
- ||可以對符號兩側(cè)的值進行或運算并返回結(jié)果
- 運算規(guī)則:
- 兩個值中只要有一個true,就返回true
如果兩個值都為false路媚,才返回false
- JS中的“或”屬于短路的或
如果第一個值為true黄琼,則不會檢查第二個值
與或運算
&& || 非布爾值的情況
- 對于非布爾值進行與或運算時,會先將其轉(zhuǎn)換為布爾值整慎,然后再運算脏款,并且返回原值
- 與運算:
- 如果第一個值為true,則必然返回第二個值
- 如果第一個值為false裤园,則直接返回第一個值
- 或運算
- 如果第一個值為true撤师,則直接返回第一個值
- 如果第一個值為false,則返回第二個值
賦值運算符
關(guān)系運算符
通過關(guān)系運算符可以比較兩個值之間的大小關(guān)系拧揽,
如果關(guān)系成立它會返回true剃盾,如果關(guān)系不成立則返回false
> 大于號
- 判斷符號左側(cè)的值是否大于右側(cè)的值
- 如果關(guān)系成立,返回true淤袜,如果關(guān)系不成立則返回false
>= 大于等于
- 判斷符號左側(cè)的值是否大于或等于右側(cè)的值
< 小于號
<= 小于等于
非數(shù)值的情況
- 對于非數(shù)值進行比較時痒谴,會將其轉(zhuǎn)換為數(shù)字然后再比較
- 如果符號兩側(cè)的值都是字符串時,不會將其轉(zhuǎn)換為數(shù)字進行比較铡羡,而會分別比較字符串中字符的Unicode編碼
Unicode:
1.在head標(biāo)簽中,在字符串中使用轉(zhuǎn)義字符輸入Unicode編碼
\u四位編碼
2.在body標(biāo)簽中,7在網(wǎng)頁中使用Unicode編碼:
&#編碼;
注意:這里的編碼需要的是10進制
Unicode:
1.在head標(biāo)簽中,在字符串中使用轉(zhuǎn)義字符輸入Unicode編碼
\u四位編碼
2.在body標(biāo)簽中,7在網(wǎng)頁中使用Unicode編碼:
&#編碼;
注意:這里的編碼需要的是10進制
Unicode:
1.在head標(biāo)簽中,在字符串中使用轉(zhuǎn)義字符輸入Unicode編碼
\u四位編碼
2.在body標(biāo)簽中,7在網(wǎng)頁中使用Unicode編碼:
&#編碼;
注意:這里的編碼需要的是10進制
Unicode:
1.在head標(biāo)簽中,在字符串中使用轉(zhuǎn)義字符輸入Unicode編碼
\u四位編碼
2.在body標(biāo)簽中,7在網(wǎng)頁中使用Unicode編碼:
&#編碼;
注意:這里的編碼需要的是10進制
Unicode:
1.在head標(biāo)簽中,在字符串中使用轉(zhuǎn)義字符輸入Unicode編碼
\u四位編碼
2.在body標(biāo)簽中,7在網(wǎng)頁中使用Unicode編碼:
&#編碼;
注意:這里的編碼需要的是10進制
Unicode:
1.在head標(biāo)簽中,在字符串中使用轉(zhuǎn)義字符輸入Unicode編碼
\u四位編碼
2.在body標(biāo)簽中,7在網(wǎng)頁中使用Unicode編碼:
&#編碼;
注意:這里的編碼需要的是10進制