javascript
[javascript|基本概念|Number]学习笔记
Number類型的值:整數(shù)/浮點數(shù)值
?
整數(shù)
十進制 ?e.g.: var intNum = 50;
八進制 ?(嚴格模式下無效,解析錯誤)字面值首位必須是0,之后的數(shù)字序列為0~7 ?e.g.: var intNum = 070; //解析為十進制56 (如果字面值數(shù)值超出了范圍,前導0將被忽略,后面的數(shù)值將被當做十進制數(shù)值解析 e.g.: var intNum = 078; //無效的八進制數(shù)字,解析為十進制78)
十六進制 ?字面值的前兩位必須是0x(或0X),之后的數(shù)據(jù)序列為0~7或A~F(可大寫,亦可小寫) ?e.g.:var intNum = 0xA; //解析為十進制10
算數(shù)計算時,所有以八進制和十六進制表示的數(shù)值最終都會轉(zhuǎn)換成十進制數(shù)值計算
?
浮點數(shù)
數(shù)值中必須包含一個小數(shù)點,且小數(shù)點后面必須至少有一個數(shù)字 e.g.:?var floatNum = 1.5;(小數(shù)點前面可以沒有整數(shù),e.g.:?var floatNum = .5; //有效,解析為0.5,但不推薦)
如果小數(shù)點后面沒有數(shù)字,將被解析為整數(shù)值?e.g.:?var floatNum = 5.; //解析為整數(shù)5 (因為浮點數(shù)保存需要的內(nèi)存空間是整數(shù)保存的兩倍,ECMAScript會不失時機地將浮點數(shù)值轉(zhuǎn)為整數(shù)值)
科學計數(shù)法 ?極大或極小的數(shù)值可附加e(或E)來表示,等同于e前面的數(shù)值乘以10的指數(shù)次冪
?
數(shù)值范圍
最大值:Number.MAX_VALUE?1.7976931348623157e+308
最小值:Number.MIN_VALUE?5e-324
超出最值,自動轉(zhuǎn)換成Infinity/-Infinity ?無窮值無法參與計算 (Number.POSITIVE_INFINITY/Number.NEGATIVE_INFINITY也分別保存著Infinity/-Infinity)
判斷是否是有窮值 ?isFinite(arg) ?arg可以為任何類型的數(shù)據(jù),非Number數(shù)據(jù)將隱式轉(zhuǎn)換成Number數(shù)據(jù)
?
NaN
非數(shù)值(Not a Number)保存一個本來要返回數(shù)值但未返回數(shù)值的數(shù)據(jù) 如任何數(shù)值除以0,返回NaN
任何與NaN的操作都會返回NaN
NaN與任何值都不想等,包括NaN本身
判斷是否未NaN ?isNaN(arg) ?arg可以為任何類型的數(shù)據(jù),非Number數(shù)據(jù)將隱式轉(zhuǎn)換成Number數(shù)據(jù)
?
數(shù)值轉(zhuǎn)換
Number()/parseInt()/parseFloat()
Number()可用于任何數(shù)據(jù)類型轉(zhuǎn)換成數(shù)值 ? ?parseInt()/parseFloat()一般用于字符串轉(zhuǎn)換成數(shù)值
Number()轉(zhuǎn)換規(guī)則:? ? ? ? ? ? ? ?
Boolean ? ?true-->1 ? ?false-->0
Number ? ?返回本身
null ? ? ? ? ?0
undefined NaN
String ? ? ? a/只包含數(shù)字(包括前面帶正好或符號)-->十進制數(shù)值 (前導為0的忽略0,不會轉(zhuǎn)換成八進制/前導為0x的,轉(zhuǎn)換為十六進制大小的十進制)
? ? ? ? ? ? ? ? b/只包含浮點-->對應的浮點數(shù)值(前導0被忽略)
? ? ? ? ? ? ? ? c/只包含空字符串-->0
? ? ? ? ? ? ? ? d/包含其他字符-->NaN
parseInt()轉(zhuǎn)換規(guī)則:(正因為Number()處理字符串轉(zhuǎn)換過于復雜,一般字符串轉(zhuǎn)換用parseInt()比較好)
主要看其是否符合數(shù)值模式
忽略字符串前面的空格,直到找到第一個非空格字符
a/第一個字符不是數(shù)字或正負號-->NaN ?e.g.:parseInt("abcd")-->NaN ?e.g.:parseInt("")-->NaN(區(qū)別Number("")-->0)
b/第一個字符是數(shù)字字符,順序解析第二個,直到解析完所有字符或遇到非數(shù)字字符結(jié)束-->已成功解析為數(shù)字的數(shù)字字面量?e.g.:parseInt("1234blue")-->1234
c/能夠解析Number類型的整數(shù)的各種格式:十進制/八進制/十六進制(parseInt()可以傳遞第二個參數(shù):多少進制;十六進制可以不帶前面的0x,推薦傳遞帶兩個參數(shù)的方式)?e.g.:parseInt("0xA")-->10 ? ?parseInt("A", 16)-->10
?parseFloat()轉(zhuǎn)換規(guī)則:
類似parseInt()
字符中有兩個以上的小數(shù)點時,第一個小數(shù)點有效,第二個之后都無效,且后面的字符被忽略 ?e.g.:parseFloat("11.22.33")-->11.22
只解析十進制格式字符串,沒有第二個參數(shù)指定轉(zhuǎn)換方式
十六進制格式字符串-->0?e.g.:parseFloat("0xA")-->0
沒有小數(shù)點的整數(shù)字符串-->整數(shù)?e.g.:parseFloat("1234blue")-->1234
科學計數(shù)法?e.g.:parseFloat("3.14e2")-->314
轉(zhuǎn)載于:https://www.cnblogs.com/bsj2016/p/5462409.html
總結(jié)
以上是生活随笔為你收集整理的[javascript|基本概念|Number]学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (原创)优酷androidclient
- 下一篇: JavaScript动画知多少?