在JS中所有的數(shù)值都是Number類型,
包括整數(shù)和浮點(diǎn)數(shù)(小數(shù))
JS中可以表示的數(shù)字的最大值
Number.MAX_VALUE
1.7976931348623157e+308
Number.MIN_VALUE 大于0的最小值
5e-324
如果使用Number表示的數(shù)字超過了最大值,則會(huì)返回一個(gè)
Infinity 表示正無窮
-Infinity 表示負(fù)無窮
使用typeof檢查Infinity也會(huì)返回number
NaN 是一個(gè)特殊的數(shù)字,表示Not A Number
使用typeof檢查一個(gè)NaN也會(huì)返回number
..........................................................................................................................................................
可以使用一個(gè)運(yùn)算符 typeof 來檢查一個(gè)變量的類型
語法:typeof 變量
檢查字符串時(shí),會(huì)返回string
檢查數(shù)值時(shí),會(huì)返回number
..........................................................................................................................................................
如果使用JS進(jìn)行浮點(diǎn)運(yùn)算,可能得到一個(gè)不精確的結(jié)果
所以千萬不要使用JS進(jìn)行對(duì)精確度要求比較高的運(yùn)算
....................................................................................................................................................
? ??????????????????????????????????????????????????Boolean
Boolean 布爾值
布爾值只有兩個(gè),主要用來做邏輯判斷
true
- 表示真
false
- 表示假
使用typeof檢查一個(gè)布爾值時(shí),會(huì)返回boolean
....................................................................................................................................................
? ??????????????????????????????????????????????????Null和Undefined
Null(空值)類型的值只有一個(gè),就是null
null這個(gè)值專門用來表示一個(gè)為空的對(duì)象
使用typeof檢查一個(gè)null值時(shí),會(huì)返回object
Undefined(未定義)類型的值只有一個(gè),就undefind
當(dāng)聲明一個(gè)變量,但是并不給變量賦值時(shí),它的值就是undefined
使用typeof檢查一個(gè)undefined時(shí)也會(huì)返回undefined
................................................................................................................................
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?強(qiáng)制類型轉(zhuǎn)換
強(qiáng)制類型轉(zhuǎn)換
- 指將一個(gè)數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換為其他的數(shù)據(jù)類型
- 類型轉(zhuǎn)換主要指,將其他的數(shù)據(jù)類型,轉(zhuǎn)換為
String Number Boolean
................................................................................................................................
將其他的數(shù)據(jù)類型轉(zhuǎn)換為String
方式一:
- 調(diào)用被轉(zhuǎn)換數(shù)據(jù)類型的toString()方法
- 該方法不會(huì)影響到原變量,它會(huì)將轉(zhuǎn)換的結(jié)果返回
- 但是注意:null和undefined這兩個(gè)值沒有toString()方法,如果調(diào)用他們的方法,會(huì)報(bào)錯(cuò)
方式二:
- 調(diào)用String()函數(shù),并將被轉(zhuǎn)換的數(shù)據(jù)作為參數(shù)傳遞給函數(shù)
- 使用String()函數(shù)做強(qiáng)制類型轉(zhuǎn)換時(shí),
對(duì)于Number和Boolean實(shí)際上就是?轉(zhuǎn)換為Number
將其他的數(shù)據(jù)類型轉(zhuǎn)換為Number
轉(zhuǎn)換方式一:
使用Number()函數(shù)
- 字符串 --> 數(shù)字
1.如果是純數(shù)字的字符串,則直接將其轉(zhuǎn)換為數(shù)字
2.如果字符串中有非數(shù)字的內(nèi)容,則轉(zhuǎn)換為NaN
3.如果字符串是一個(gè)空串或者是一個(gè)全是空格的字符串,則轉(zhuǎn)換為0
- 布爾 --> 數(shù)字
true 轉(zhuǎn)成 1
false 轉(zhuǎn)成 0
- null --> 數(shù)字 0
- undefined --> 數(shù)字 NaN
轉(zhuǎn)換方式二:
- 這種方式專門用來對(duì)付字符串
- parseInt() 把一個(gè)字符串轉(zhuǎn)換為一個(gè)整數(shù)
- parseFloat() 把一個(gè)字符串轉(zhuǎn)換為一個(gè)浮點(diǎn)數(shù)
....................................................................................................................................................
? ??????????????????????????????????其他進(jìn)制的數(shù)字
在js中,如果需要表示16進(jìn)制的數(shù)字,則需要以0x開頭
如果需要表示8進(jìn)制的數(shù)字,則需要以0開頭
如果要要表示2進(jìn)制的數(shù)字,則需要以0b開頭,但是不是所有的瀏覽器都支持
....................................................................................................................................................
????????????????????????????????????????????????????轉(zhuǎn)換為Boolean
將其他的數(shù)據(jù)類型轉(zhuǎn)換為Boolean
使用Boolean()函數(shù)
- 數(shù)字 ---> 布爾
- 除了0和NaN,其余的都是true
- 字符串 ---> 布爾
- 除了空串,其余的都是true
- null和undefined都會(huì)轉(zhuǎn)換為false
- 對(duì)象也會(huì)轉(zhuǎn)換為true
....................................................................................................................................................
????????????????????????????????????????????運(yùn)算符
運(yùn)算符也叫操作符
通過運(yùn)算符可以對(duì)一個(gè)或多個(gè)值進(jìn)行運(yùn)算,并獲取運(yùn)算結(jié)果
比如:typeof就是運(yùn)算符,可以來獲得一個(gè)值的類型,它會(huì)將該值的類型以字符串的形式返回
"number" "string" "boolean" "undefined" "object"
算數(shù)運(yùn)算符
當(dāng)對(duì)非Number類型的值進(jìn)行運(yùn)算時(shí),會(huì)將這些值轉(zhuǎn)換為Number然后在運(yùn)算
任何值和NaN做運(yùn)算都得NaN
+
+可以對(duì)兩個(gè)值進(jìn)行加法運(yùn)算,并將結(jié)果返回
如果對(duì)兩個(gè)字符串進(jìn)行加法運(yùn)算,則會(huì)做拼串,會(huì)將兩個(gè)字符串拼接為一個(gè)字符串,并返回
任何的值和字符串做加法運(yùn)算,都會(huì)先轉(zhuǎn)換為字符串,然后再和字符串做拼串的操作
-
- 可以對(duì)兩個(gè)值進(jìn)行減法運(yùn)算,并將結(jié)果返回
*
* 可以對(duì)兩個(gè)值進(jìn)行乘法運(yùn)算
/
/ 可以對(duì)兩個(gè)值進(jìn)行除法運(yùn)算
%
% 取模運(yùn)算(取余數(shù))
....................................................................................................................................................
任何值和字符串相加都會(huì)轉(zhuǎn)換為字符串,并做拼串操作
我們可以利用這一特點(diǎn),來將一個(gè)任意的數(shù)據(jù)類型轉(zhuǎn)換為String
我們只需要為任意的數(shù)據(jù)類型 + 一個(gè) "" 即可將其轉(zhuǎn)換為String
這是一種隱式的類型轉(zhuǎn)換,由瀏覽器自動(dòng)完成,實(shí)際上它也是調(diào)用String()函數(shù)
....................................................................................................................................................
任何值做- * /運(yùn)算時(shí)都會(huì)自動(dòng)轉(zhuǎn)換為Number
我們可以利用這一特點(diǎn)做隱式的類型轉(zhuǎn)換
可以通過為一個(gè)值 -0 *1 /1來將其轉(zhuǎn)換為Number
原理和Number()函數(shù)一樣