在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為什麼是單執行緒的?為什麼需要非同步?單執行緒又是如何實現非同步的呢?技術的出現,都跟現實世界裡的應用場景密...