JavaScript數(shù)值類型知識匯總
整數(shù)
- 十進(jìn)制
- 二進(jìn)制
以零為開頭,后面接一個小寫或大寫的拉丁文字母B(0b或者是0B)
- 八進(jìn)制
以0開頭,然后是八進(jìn)制數(shù)字序列(0-7) , 如果字面值中的數(shù)值超出范圍,那么前導(dǎo)0將被忽略,后面的數(shù)值當(dāng)作十進(jìn)制解析。
- 十六進(jìn)制
十六進(jìn)制字面值的前兩位必須是 0x,后跟任何十六進(jìn)制數(shù)字(0~9 及 A~F)。其中,字母 A~F可以大寫,也可以小寫;
浮點(diǎn)數(shù)
保存浮點(diǎn)數(shù)需要的內(nèi)存空間是保存整數(shù)值的兩倍,因此ECMAScript會不失時機(jī)的將浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù)值。
var floatNum1 = 1.; // 小數(shù)點(diǎn)后面沒有數(shù)字——解析為 1 var floatNum2 = 10.0; // 整數(shù)——解析為 10
默認(rèn)會將小數(shù)點(diǎn)后面帶有6個零以上的浮點(diǎn)數(shù)值轉(zhuǎn)換為以e表示法表示的數(shù)值;
浮點(diǎn)數(shù)值的最高精度是17位小數(shù);
數(shù)值范圍
最大值Number.MAX_VALUE 1.7976931348623157e+308
最小值Number.MIN_VALUE 5e-324
- Number.MIN_VALUE < var1 < Number.MAX_VALUE , isFinite(var1)返回false, 否則返回true
- 如果值超過了js數(shù)值范圍,那么這個數(shù)值自動被轉(zhuǎn)換成特殊的Infinity值。實(shí)際情況 Number.MAX_VALUE + 1 還等于 Number.MAX_VALUE;
- isFinite()函數(shù)判斷數(shù)值是否位有窮,參數(shù)位于最小與最大數(shù)值之間時會返回 true
NaN
- 任何涉及 NaN 的操作(例如 NaN/10)都會返回 NaN
- NaN 與任何值都不相等,包括 NaN 本身
- 實(shí)際上只有 0 除以 0 才會返回 NaN,正數(shù)除以 0 返回 Infinity,負(fù)數(shù)除以 0 返回-Infinity
- isNaN() 。在接收到一個值之后,會嘗試將這個值轉(zhuǎn)換為數(shù)值。也適用于對象,先調(diào)用對象的valueOf()判斷是否能轉(zhuǎn)成數(shù)值,若不能調(diào)用toString()再測試返回值。
數(shù)值轉(zhuǎn)換
有 3 個函數(shù)可以把非數(shù)值轉(zhuǎn)換為數(shù)值: Number()、 parseInt()和 parseFloat()
Number()
- 如果是boolean類型, true返回1,false返回0;
- 如果是數(shù)值,只是簡單的傳入返回;
- 如果是null,返回0
- 如果是undefined, 返回NaN;
- 如果是字符串,字符串如果只包含數(shù)字,則將其轉(zhuǎn)換成十進(jìn)制數(shù);如果是有效的浮點(diǎn)格式,將其轉(zhuǎn)換成對應(yīng)的浮點(diǎn)數(shù)值;如果是二進(jìn)制或十六進(jìn)制將其轉(zhuǎn)換成對應(yīng)的十進(jìn)制數(shù)值;
alert(Number("3.14e5")); // 314000 alert(Number("0b1111")); // 15, 將二進(jìn)制轉(zhuǎn)換為十進(jìn)制 alert(Number("017")); // 17, 不會轉(zhuǎn)為8進(jìn)制 alert(Number("0x1a")); // 26, 轉(zhuǎn)換為16進(jìn)制 alert(Number("")); // 空字符串,返回0 alert(Number("1a")); // 返回NaN
6.如果是對象,調(diào)用對象的valueOf()方法,然后依照前面規(guī)則轉(zhuǎn)換,如果valueOf返回值是NaN,則調(diào)用toString()方法,再依照前面的規(guī)則轉(zhuǎn)換返回的字符串
parseInt()
第一個參數(shù),要解析的數(shù)值字符串;第二個參數(shù)采用多少進(jìn)制,不指定基數(shù)意味著讓 parseInt()決定如何解析輸入的字符串;
- 如果第一個字符不是數(shù)字字符或者負(fù)號, parseInt()就會返回 NaN;
- parseInt()轉(zhuǎn)換空字符串會返回 NaN
- 如果第一個字符是數(shù)字字符, parseInt()會繼續(xù)解析第二個字符,直到解析完所有后續(xù)字符或者遇到了一個非數(shù)字字符。
parseInt("1234blue") // 1234, blue忽略 parseInt("22.5"); // 22
parseInt不能解析二進(jìn)制的數(shù)值,在ES5中,也不能解析八進(jìn)制的數(shù)值;
parseInt("0b1111"); // 0 parseInt("071"); // 71,
parseFloat()
- parseFloat()只解析十進(jìn)制值,因此它沒有用第二個參數(shù);
- 從第一個字符(位置 0)開始解析每個字符。而且也是一直解析到字符串末尾,或者解析到遇見一個無效的浮點(diǎn)數(shù)字字符為止;
- 它始終都會忽略前導(dǎo)的零
var num1 = parseFloat("1234blue"); //1234 (整數(shù)) var num2 = parseFloat("0xA"); //0 var num3 = parseFloat("22.5"); //22.5 var num4 = parseFloat("22.34.5"); //22.34 var num5 = parseFloat("0908.5"); //908.5 var num6 = parseFloat("3.125e7"); //31250000
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。
相關(guān)文章
Javascript基礎(chǔ)學(xué)習(xí)筆記(菜鳥必看篇)
下面小編就為大家?guī)硪黄狫avascript基礎(chǔ)學(xué)習(xí)筆記(菜鳥必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07原生JavaScript來實(shí)現(xiàn)對dom元素class的操作方法(推薦)
這篇文章主要介紹了原生JavaScript來實(shí)現(xiàn)對dom元素class的操作方法,提供了代碼toggleClass的測試?yán)?,具體操作步驟大家可查看下文的詳細(xì)講解,感興趣的小伙伴們可以參考一下。2017-08-08