primitive type
七種原始型別
原始型別是 immutable,不可變的,當在原始型別的值使用方法後,會回傳新的值,而不會直接修改原本的值。
- boolean
- null
- undefined
- number
- BigInt
- string
- symbol
object
object 使用方法後則會直接修改原本的值。
typeof
沒有宣告跟宣告後沒有賦值,用 typeof 檢測都會是 undefine
NaN
把字串用 number() 轉成 number 時會出現 NaN
console.log(typeof NaN) // number
Array.isArray()
沒辦法用 typeof 檢測東西是否為 array,但可用 array.isArray() 判斷使否為 array
Object.prototype.toString.call()
可將型態判斷地更細
Object.prototype.toString.call(1) // [object Number]
Object.prototype.toString.call([]) // [object Array]
賦值
object 是將資料存在記憶體的位置
用 (. 方法) 會改變記憶體位置的值
let arr = []
let arr2 = arr
console.log(arr, arr2)
arr2.push('arr')
console.log(arr, arr2)
用賦值的方式則會開新的記憶體位置並存放資料。
let arr = []
let arr2 = arr
console.log(arr, arr2)
arr2 = ['arr']
console.log(arr, arr2)