瀏覽器底層相關 堆疊記憶體篇

2021-10-09 04:45:43 字數 1295 閱讀 4129

1.在瀏覽器中開啟頁面,瀏覽器引擎會渲染相關的**,換句話說會把**從上往下執行

2.瀏覽器要執行**,會提供乙個供**執行的環境,叫做ecstack(execution context stack 環境執行上下文)=> 棧記憶體

3.最開始執行的是全域性**,會形成乙個ec(global)全域性執行上下文,在棧記憶體中執行全域性的**

4.在全域性執行中有乙個vo(global)全域性物件,可以吧定義的變數和值儲存在這裡邊

let a =

12;

1.建立值12(基本型別值直接儲存在棧記憶體中即可

2.建立變數a,把其儲存在對應的vo中

3.讓建立的變數a和建立的值12關聯在一起

let n =

1.建立值

面試題1

let a =

, b =

'0',

c =0;

a[b]

="一一";

a[c]

="還是一一";

console.

log(a[b]);

//「還是一一」,其他非字串格式作為key和把它轉化為字元格式沒啥區別

面試題2

let a =

, b =

symbol

("1"),

c =symbol

("1");

a[b]

="一一";

a[c]

="還是一一";

/* symbol是唯一值,兩個symbol是不想等的這裡是兩個熟悉

* 此時,a =

*/

console.

log(a[b]);

//「一一」

console.

log(a[b]);

//「還是一一」

面試題3

let a =

, b =

, c =

a[b]

="一一";//b被轉換成字串[object object]

a[c]

="還是一一";//c被轉換成字串[object object]

console.

log(a[b]);

//「還是一一」,

瀏覽器快取篇

在前端開發中,快取有利於加快網頁的載入速度,同時快取能夠被反覆利用,所以可以減少流量和頻寬的開銷。瀏覽器的快取問題,主要指的是http的快取 即協議層。而h5新增的storage和資料庫快取,那是應用層快取,並不被計入本篇的分析內容裡面。下面我們正式開始來進行快取的分析。協議層的快取,其實,可以被分...

瀏覽器記憶體洩露

部分內容引用自 在你的程式執行結束後,無法找到你變數的作用域物件,進而無法清除記憶體中的變數,這就是記憶體洩露現象 通常來說,以下三種情況可能會導致記憶體洩露的現象發生 首先要說,什麼是引用呢,如果a物件中的a變數被賦值為物件b時,就說物件a引用了b。迴圈引用就是a引用了b,b又引用了c,c又引用了...

了解瀏覽器底層渲染機制

crp critical rendering path 關鍵渲染路徑 渲染的機制和步驟,去詳細地進行每一步的優化,以此來提高頁面的渲染速度和執行效能。頁面之所以能渲染 從伺服器獲取到需要渲染的內容 url解析 dns tcp http 瀏覽器會基於自己的渲染引擎 例如 webkit gecko tr...