JS基礎整理之資料型別

2021-10-23 12:12:43 字數 1651 閱讀 4955

js的資料型別

在es5的時候,我們認知的資料型別確實是 6種:number、string、boolean、undefined、object、null。

es6 中新增了一種 symbol 。這種型別的物件永不相等,即始建立的時候傳入相同的值,可以解決屬性名衝突的問題,做為標記。

其中:基本型別(單型別):除object。 string、number、boolean、null、undefined。

引用型別:object。裡面包含的 function、array、date。

資料型別的記憶體圖

棧:是有結構的,每個區塊按照一定的次序存放。主要處理各種基本型別,包括null,undefined,boolean,number,string,bigint,以及物件的引用(即指標)。

堆:是沒有結構的,資料可以任意存放。主要處理引用型別: 物件、陣列、函式等。首先從棧中獲得該物件的位址指標,然後在從堆中取得資料。

遇到的乙個面試題:const定義的值能修改麼?

以平時的經驗是不能的,但是平時我們使用const定義的值一般都是基本型別,它們的確不能被修改。但是如果使用const定義乙個物件,這個物件的值是可以修改的。本質是什麼?原因就是const定義物件的時候,我們說的常量其實就是上圖中棧中的指標,就是const物件對應堆記憶體的指向是不變的,只要指向不變,修改這個物件的屬性是可以的。看下面的**:

修改了a,報錯

const obj =

;obj.a =2;

console.

log(obj)

;//不報錯

== 和 ===的區別

== :不管資料型別是否相同,在資料型別的轉換後相同即成立

===:如果資料型別不同直接為false

null 和 undefined 的區別

console.

log(

typeof

(undefined));

//undefined

console.

log(

typeof

(null))

;//object

console.

log(undefined ==

null

)//true

console.

log(undefined ===

null

)//false

console.

log(

number

(null))

;//0

console.

log(

number

(undefined));

//nan

//if語句中都為false

// null表示乙個值被定義了,但是這個值是空值

// undefined表示缺少值,即此處應該有值,但是還沒有定義

[阮一峰老師文章有提及](

JS資料型別之基礎資料型別

基本資料型別是按值訪問的,也就是說我們可以操作儲存在變數中的實際的值 基本資料型別的值是不可改變的,任何方法都無法改變乙個基本資料型別的值。let name qin ling ling name lisi console.log name 輸出 lisi上面的例子看來name的值好像變了,這裡的基礎...

JS資料型別總結整理

js 資料型別 字串 布林 數字 物件 element null 函式 未定義 1 檢測資料型別 typeof 運算子 charat 根據字串下標來獲取子字串 var a miaov alert typeof a string alert a.length 5 alert a.charat 2 ch...

js資料型別基礎

一.資料型別 資料型別包括 基本資料型別和引用資料型別 基本資料型別指的是簡單的資料段,引用資料型別指的是有多個值構成的物件。當我們把變數賦值給乙個變數時,解析器首先要確認的就是這個值是基本型別值還是引用型別值 var a 123 typeof 檢查當前變數是什麼資料型別 console.log t...