JS 裡的資料型別轉換

2021-09-25 21:04:37 字數 1695 閱讀 4974

型別轉換

任意型別轉字串

任意型別轉數字

number(x)

parseint(x, 10) mdn

parsefloat(x) mdn

x - 0

+x任意型別轉布林

boolean(x)

!!x5種常為false的

null, undefined,0,nan,』 』

null 的typeof 為object

記憶體圖你買乙個 8g 的記憶體條

作業系統開機即占用 512mb

chrome 開啟即占用 1g 記憶體

chrome 各每個網頁分配一定數量的記憶體

這些記憶體要分給頁面渲染器、網路模組、瀏覽器外殼和 js 引擎(v8引擎)

js 引擎將記憶體分為**區和資料區

我們只研究資料區

資料區分為 stack(棧記憶體)和 heap(堆記憶體)

簡單型別的資料直接存在 stack 裡

複雜型別的資料是把 heap 位址存在 stack 裡遇到問題就畫圖,不要分析。

面試題

var a =

1var b = a

b =2

請問 a 顯示是幾?

answer:

1

var a =

var b = a

b =請問現在 a.name 是多少?

answer:a.name=

'a' b.name=

'b'

var a =

var b = a

b.name =

'b'請問現在 a.name 是多少?

answer:

'b'

var a =

var b = a

b =null

請問現在 a 是什麼?

answer:

深複製是什麼鬼

var a = 1

var b = a

b = 2 //這個時候改變 b

a 完全不受 b 的影響那麼我們就說這是乙個深複製

對於簡單型別的資料來說,賦值就是深拷貝。對於複雜型別的資料(物件)來說,才要區分淺拷貝和深拷貝。這是乙個淺拷貝的例子

var a =

var b = a

b.name = 『b』

a.name === 『b』 // true

因為我們對 b 操作後,a 也變了什麼是深拷貝了,就是對 heap 記憶體進行完全的拷貝。

var a =

var b = deepclone(a) // deepclone 還不知道怎麼實現

b.name = 『b』

a.name === 『frank』 // true

JS裡的資料型別轉換

js裡的資料型別共有7種,分別為number string boolean undefined null symbol object,這裡先放下symbol不考慮。1 其他5種資料型別轉string型別,以number型別為例 var a 20 針對最後一種方法 var a 1,2 4 4,3 va...

JS 裡的資料型別轉換

一 js中的資料型別 js中的資料型別一共有六種,即number,string,boolean,underfine,null,object。number資料型別指的是數字,包括整型和浮點數。如 var a 1,b 2.0 string表示單引號或者雙引號包括起來的0及0個以上的字元,可以是字母 數字...

JS裡的資料型別轉換

除object外,其他資料型別都是簡單型別,object是其他簡單型別構成的複雜型別 先看看簡單型別 任意型別轉字串 把資料轉化為字串有三種方法 1.string x 2.x.tostring 3.x 需要注意的是,undefined 和 null 不可以使用tostring方法,會報錯 而obje...