null, undefined
boolean
需要注意, {}在轉變為 boolean 的時候是 true當需要使用到整數運算的時候,js 會將 64 位浮點數轉為 32 位整數。
數字的精度
特別提示一下十進位小數轉二進位小數:case1: 0.5 => 0.5*2 = 1.0 取整數,結果就是 0.1
case2: 0.85 => 0.85 * 2 = 1.7, 取整數1, 0.7 * 2 = 1.4,取整數1,0.4 * 2 取整數…
那麼問題來了,為什麼 x=0.1 看到的是 0.1?事實上這只是剛好而已,由於精度的原因, m 的最大值為2^53=9,007,199,254,740,992,
轉為科學表示法就是 9.007199254740992 * 10^15.所以最大的數字也就只能表示到16位的數字.然而 js 的0.1實際上是0.100000000000000005551115123126,由於只能精確到16位數字,所以實際上只能得到 0.1000000000000000 所以會得到0.1.這件事情可以通過toprecision()這個function驗證.0.10000000000000000555.toprecision(16) = 0.1,0.1.toprecision(21) = 0.100000000000000005551,所以事實上只是你看到的是0.1。並不是真的0.1
console.
log(math.
pow(2,
53))console.
log(math.
pow(2,
53)+1
)//9007199254740992
//9007199254740992
數值範圍console.
log(math.
pow(2,
1023))
console.
log(math.
pow(2,
1024))
console.
log(math.
pow(2,
-1075))
//infinity
// 0
數值表示法
console.
log(
1111111111111111
)//16
console.
log(
1111111111111111111111
)//22
//1111111111111111
數值的進製
2進製:有字首0b或0b的數值。
0xff
// 255
0o377
// 255
0b11
// 3
特殊數值
nan not a number
infinity
全域性方法簡介
因此最好判定乙個值是否是 nan 的最好的方法就是判斷是否跟自己嚴格相等.切記 nan是唯一乙個不等於自身的
value !== value
isfinite(number): 判斷乙個值是否為正常數值.
這裡只需要特別注意一下,除了 infinity, -infinity, undefined, nan是返回false.
js學習筆記2
js內建物件 陣列 var arr new array 可指定長度,也可以直接在括號裡賦值 arr.length 陣列長度 陣列連線 arr1.concat arr2,arr3 指定元素間隔符 arr.join 倒序 arr1.reverse 選定元素 arr.slice 起始位置,結束位置 起始位...
js學習筆記2
2.新的資料型別 布林boolean 昨天說了兩種基本資料型別 number 數值型別 1,123,123,0 string 字串型別 hello 123 今天再說一種 boolean 布林 就只有兩個值 true 真 false 假 3.關係運算子 昨天說了算術運算子 大於號 小於號 大於或等於 ...
前端學習筆記js篇(2)
1.和 js中 運算會先將兩邊的資料型別進行轉換,如 1 1 會先把 1 轉換成1,再進行比較,結果自然是true 而 運算是將兩邊的資料進行完全比較,資料型別和數值必須完全相同。因此1 1 結果自然是false 被比較值 b undefined null number string boolean...