JS執行的底層機制 web前端高階學習

2021-10-05 08:34:22 字數 1655 閱讀 5678

在js中物件的屬性名是什麼格式的?

普通物件的屬性名只能是「字串」(普通物件的屬性名可以是基本資料型別值)

但是普通物件的屬性名不能是物件,如果是物件,需要轉換為字串儲存

map 這種資料結構支援 物件作為屬性名

物件作為屬性名會tostring轉換為字串"[object object ]"

普通物件tostring 是調取 object.prototype.tostring 是用來檢測資料型別的

js中存在多種作用域(全域性、函式私有的、塊級私有的)

**執行之前,首先會形成自己的執行上下文,然後把上下文進棧,進棧後,在當前上下文中在去依次執行**

1、建立值--------------基本型別值直接儲存在棧記憶體中

2、建立變數

3、變數和值指標關聯

建立物件步驟:

1、建立乙個堆記憶體

2、把鍵值對儲存到堆記憶體

3、堆記憶體位址放到棧中,供變數呼叫

建立物件步驟:

1、建立乙個堆記憶體

2、把鍵值對儲存到堆記憶體

3、堆記憶體位址放到棧中,供變數呼叫

;//執行順序 a.x=值 a=值

console.

log(a.x)

;//undefined

console.

log(b)

//}function fn() 建立乙個變數叫fn 儲存的值是乙個函式

var fn = function(){}; 和這個類似

函式堆把函式體中的**當做字串儲存到堆中 「**字串」 =>建立函式不執行,函式沒啥用

函式也是物件,他也有自己的鍵值對

fn(x)執行傳遞的值是實參 定義函式設定的是形參

函式執行的目的? 想讓之前儲存在堆中的**字串執行 -> **執行就要有自己的執行環境

前端 JS執行機制

1 js是 1 單執行緒 2 任務佇列 同步任務 非同步任務 先掛載 單執行緒就意味著所有任務需要排隊,前乙個任務結束,才會執行下乙個任務。js從上到下執行,遇到非同步任務先掛起,繼續執行同步任務,同步任務執行完畢再處理非同步任務。優先執行同步任務,再執行非同步任務 如 for var i 0 i ...

web前端 之執行機制

我們先來幾道題了解一 驗一下執行機制 console.log 1 settimeout function 0 console.log 2 最後列印順序 1,2,3 我們來看看這是為什麼 js是單執行緒的,同一時間只能做一件事,從上到下執行 任務佇列 settimeout是個非同步任務,非同步任務要掛...

好程式設計師web前端分享JS引擎的執行機制

好程式設計師web前端分享js引擎的執行機制,一 js是單執行緒語言。js的eventloop是js的執行機制。深入了解js的執行,就等於深入了解js裡的eventloop。1 靈魂三問 js為什麼是單執行緒的?為什麼需要非同步?單執行緒又是如何實現非同步的呢?技術的出現,都跟現實世界裡的應用場景密...