js 資料型別
instance 例項 symbol 象徵
引申出來的問題:
-
===
-
bigint
-
symbol
-
null 和 object 都是object 怎麼區分 null
null 是空物件 typeof 返回的是 object
undefined 是變數定義了但是沒有賦值 typeof 返回的是undefined
-
instanceof
-
typeof [1,2,3] 得到的是objcet?
對,基礎型別中沒有arr
bigint
引申出來的問題:
1.** 是什麼意思 乘方麼
對 console.log(2**6); >>>>64
2.不懂 bigint
大整數,就是在普通的整數後面加上n 正常的運演算法則適用
本來是為了表示2**53以後的數字的安全的,目前用的不多
symbol
https://www.bilibili.com/video/BV1dE411v7mx?from=search&seid=12787829423380854126
解決變數的唯一性,避免了同名覆蓋的問題
instanceof
let arr = [12,34,56] console.log(typeof arr); let user = { name: 'zhangsan', age:23 } console.log(user); console.log(user instanceof Object); >>>true console.log(arr instanceof Array); >>>true
xx instanceof Xx 注意後面的要大寫
在原型鏈上的都返回true
和=
https://www.cnblogs.com/nelson-hu/p/7922731.html
運算元1 == 運算元2, 運算元1 === 運算元2
比較過程:
雙等號==:
(1)如果兩個值型別相同,再進行三個等號(===)的比較
(2)如果兩個值型別不同,也有可能相等,需根據以下規則進行型別轉換在比較:
1)如果一個是null,一個是undefined,那麼相等
2)如果一個是字串,一個是數值,把字串轉換成數值之後再進行比較
三等號===:
(1)如果型別不同,就一定不相等
(2)如果兩個都是數值,並且是同一個值,那麼相等;如果其中至少一個是NaN,那麼不相等。(判斷一個值是否是NaN,只能使用isNaN( ) 來判斷)
(3)如果兩個都是字串,每個位置的字元都一樣,那麼相等,否則不相等。
(4)如果兩個值都是true,或是false,那麼相等
(5)如果兩個值都引用同一個物件或是函式,那麼相等,否則不相等
(6)如果兩個值都是null,或是undefined,那麼相等