web高級 - 04 瀏覽器堆棧內存的底層處理

編譯器(把代碼解析成爲瀏覽器看得懂的結構):詞法解析 / AST抽象語法樹 / 構建出瀏覽器能夠執行的代碼

引擎(V8引擎,webkit內核): 變量提升 / 作用域、閉包 / 變量對象 / 堆棧內存 / GO、VO、AO、EC、ECStack

let a = { n : 10 };
let b = a;
b.n = 20;
console.log(a.n);   //20
let a = { n : 10 };
let b = a;
b = { n : 20 };
console.log(a.n);   //10

引擎處理流程圖: 

面試題:

let a = { n : 10 };
let b = a;
b.m = b = { n : 20 }; //即 c = { n : 20 }    b.m = c      b = c
console.log(a); //{n:10,m:{n:20}}
console.log(b); //{n:20}
let x = [12,23];
function fn(y){ //即 y = x;
    y[0] = 100;
    y = [100];
    y[1] = 200;
    console.log(y); // [100,200]
}
fn(x); 
console.log(x); // [100,23]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章