1. 程式人生 > 其它 >js 資料型別

js 資料型別

instance 例項 symbol 象徵

引申出來的問題:

  1. ===

  2. bigint

  3. symbol

  4. null 和 object 都是object 怎麼區分 null

    null 是空物件 typeof 返回的是 object

    undefined 是變數定義了但是沒有賦值 typeof 返回的是undefined

  5. instanceof

  6. 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,那麼相等