Base64 編碼與解碼詳解
阿新 • • 發佈:2020-11-26
-
基本資料型別:Number、String、Boolean、null、undefined、Symbol
-
引用資料型別:object其中包含array、data、function等等
-
涉及知識點:
-
裝箱和拆箱
let str = new String('string')
-
typeof
值 結果 undefined undefined 'string' (字串型別) string 123、NaN number true,false boolean let a = Symbol('a') symbol {}、[]、null等 object function () {} function -
undefined 和 null
- null 表示這個值被定義了,但這個值為空,undefined 表示原本此位置該有值,但現在此值未定義
- 兩者在 if 判斷語句中,都會被轉換為false
- undefined派生自null,因此在用
==
判斷時為ture
- undefined 表示未定義,而 null 則未空
- 在 Number 中的轉換值不同,
Number(null)
的值未0,而Number(undefined)
的值為NaN - typeof(undefined) 的值為 undefined 而typeof(null) 的值為 object
-
NaN
- 含意為 Not a number,用來檢測是否為數字
- NaN並不等於自身,如
Number(
test`)==NaN 值為false isNaN()
用來判斷該值是否為 NaN,還可以使用Object.is(NaN,NaN)
typeof
的值為 number
-
0.1+0.2 結果不為0.3
- 原因,基於IEEE754數值的浮點計算的通病。
- 解決方法,可以使用其他方式進行判斷,如
(0.1*10+0.2*10)/10 == 0.3
或者可以使用Number.EPSILON
來進行判斷0.1+0.2-0.3<Number.EPSILON
-
陣列檢測方法
- instanceof 判斷是否在一條原型鏈上
arr instanceof Array
- constructor 屬性進行判斷
arr.constructor == Array
- Array.isArray 檢測是否為陣列
- typeof 也可以進行判斷,只不過麻煩一點
typeof arr.__proto__.push == function()
用typeof判斷例項的原型中是否有 Array 的方法,如果有,就為陣列
- instanceof 判斷是否在一條原型鏈上
-
== 和 ===
- 雙等表示值相同,型別可以不同,===表示型別也必須相同
-
Object 的知識點過於多,建議尋找更系統的資料檢視
-
BigInt 型別:是一種內建物件,可以表示大於 253 的整數。而在Javascript中,
Number
基本型別可以精確表示的最大整數是 253。BigInt
可以表示任意大的整數。在MDN中被歸為基本資料型別
-