1.在瀏覽器中開啟頁面,瀏覽器引擎會渲染相關的**,換句話說會把**從上往下執行
2.瀏覽器要執行**,會提供乙個供**執行的環境,叫做ecstack(execution context stack 環境執行上下文)=> 棧記憶體
3.最開始執行的是全域性**,會形成乙個ec(global)全域性執行上下文,在棧記憶體中執行全域性的**
4.在全域性執行中有乙個vo(global)全域性物件,可以吧定義的變數和值儲存在這裡邊
1.建立值12(基本型別值直接儲存在棧記憶體中即可let a =
12;
2.建立變數a,把其儲存在對應的vo中
3.讓建立的變數a和建立的值12關聯在一起
1.建立值let n =
面試題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...