簡體   English   中英

Javascript變量內存分配

[英]Javascript variable memory allocation

在 Javascript wrt 聲明和初始化中分配給變量的內存是在哪個階段?

console.log(a); // Prints undefined
var a;
a = 20;

對於上面的代碼片段,即使在代碼執行開始之前, a = undefined 也是如此。 這是否意味着在創建沒有值( undefined )的變量環境期間分配了內存? 如果是,在代碼執行階段,當 JS 引擎遇到a = 20是否將新的內存塊分配給 a 指向的 20 ?

這叫做吊裝。

來自關於提升MDN Web Docs 文檔

解釋器在執行代碼之前為變量和函數聲明分配內存

把它想象成好像你所有的變量,在未來聲明為var ,首先被讀取並設置為undefined 稍后對變量值的更改將分配給同一個變量。

 console.log(a); // undefined var a; a = 20; console.log(a); // 20

請注意,您只能使用var來執行此操作—— letconst在它們的聲明點是只讀的。

console.log(b); // ReferenceError: b is not defined


console.log(c); // ReferenceError: c is not defined
let c = 1;


console.log(d); // ReferenceError: d is not defined
const d = 1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM