好家伙,
本篇內容為《JS高級程式設計》第三章學習筆記
1.Number型別
從名稱中我們可以得出,這是一個存放數值的型別,
不同的數值型別相應地也有不同的數值字面量格式
Number型別可以儲存不同進制的數(不常用就是了)
八進制:在數前加一個零("0"),后續的數字中不能有大于7的數值,否則八進制無效
十六進制:在數字前加一個零x("0x"),后面不可跟隨超出十六進制的數,否則會十六進制無效

1.1.浮點值
要定義浮點值,數值中必須包含小數點,而且小數點后面必須至少有一個數字,
小數點前可以沒有數字,但推薦加上,
(看上去有些奇怪,但可行)
let a = 0.1;
let b = .1;
console.log(a,b);

因為存盤浮點值使用的記憶體空間是存盤整數值的兩倍,所以ECMAScript總是想方設法把值轉換為整數,
在小數點后面沒有數字的情況下,數值就會變成整數,
類似地,如果數值本身就是整數,只是小數點后面跟著0(如1.0),那它也會被轉換為整數,
let a = 10.0;
let b = 10.;
console.log(a, b);

1.2.科學計數法
使用科學計數法使數字表達更簡潔
其中在數字后面加上e10表示乘以10的十次方
同理,e-10表示十的負十次方
let a = 3.14e10; let b = 3.14e-10; let c =0.000005; let d =0.0000005; console.log(a, b); console.log(c, d);
有趣的是,當小數點后的零大于等于6個后,將會被以科學計數法表示
1.3.值的范圍
由于記憶體的限制,ECMAScript并不支持表示這個世界上的所有數值,
ECMAScript可以表示的最小數值保存在Number.MIN_VALUE 中,這個值在多數瀏覽器中是 5e-324;
可以表示的最大數值保存在Number.MAX_VALUE中,這個值在多數瀏覽器中是1.7976931348623157e+308,
如果某個計算得到的數值結果超出了 JavaScript可以表示的范圍,那么這個數值會被自動轉換為一個特殊的 Infinity(無窮)值,
任何無法表示的負數以Infinity(負無窮大)表示,任何無法表示的正數以Infinity(正面不無窮大)表示,
如果計算回傳正 Infinity 或負 Infinity,則該值將不能再進一步用于任何計算,這是因為Infinity 沒有可用于計算的數值表示形式,
要確定一個值是不是有限大(即介于JavaScript能表示的最小值和最大值之間),可以使用isFinite()函式,如下所示:
let result=Number.MAX_VALUE +Number.MAX_VALUE;
console.log(isFinite(result)); // false
雖然超出有限數值范圍的計算并不多見,但總歸還是有可能的,因此在計算非常大或非常小的數值時,有必要監測一下計算結果是否超出范圍,
注意 使用 Number.NEGATIVE_INFINITY和Number.POSITIVE_INFINITY 也可以獲 取正、負Infinity,
沒錯,這兩個屬性包含的值分別就是-Infinity和Infinity,
1.4.NaN(Not a Number)和Infinity
NaN是一個特殊數值,就像他的翻譯一樣-----"不是數字",
用于表示本來要回傳數值的操作失敗了(比如說某某數除以零,但并不拋出錯誤)
比如說0除以零,但并不拋出錯誤,而是回傳NaN,
而自然數除以0時,就是Infinity(無限)
console.log(1/0);
console.log(+0/-0);

1.4.1.isNaN()方法
isNaN()方法用于判斷一個數是否為NaN,(是否"不是數值"),
他首先會呼叫物件的valueOf()方法,然后再確定是否可以轉換為數值.
如果不能,再呼叫toString()方法.并測驗其回傳值
console.log(isNaN(0/0));
console.log(isNaN(100));
console.log(isNaN("true")); //true 不可以被轉化為數字一
console.log(isNaN(true)); //false 可以被轉化為數字一

1.5.數值轉換
Number()方法可以將非數值轉換為數值,
Number()方法可用于任何型別資料
(1)布林值————true轉換為1,false轉換為0
(2)數值————直接回傳(你是來找茬的把?)
(3)null————直接回傳0
(4)undefined————回傳NaN
(5)字串————
1.如果有進制表示字符與數字組合,那么轉換為相應進制的數字
2.空字串,回傳0,
3.包含其他任何非進制表示字符,回傳NaN
(6)物件————呼叫valueOf方法,并按照上述規則轉換回傳的值,如果轉化的結果是NaN,
則呼叫toString()方法,再按照字串轉換規則轉換
來看看例子:
let a = Number(true); let b = Number(87); let c = Number(null); let d = Number(undefined); let e = Number("panghu"); console.log(a, b); console.log(c, d, e);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/531929.html
標籤:JavaScript
上一篇:回圈練習
