摘要:對于下面的代碼,它們在內存中是怎樣分配的呢賦值運算符,賦的是內存地址函數就在函數方法定義區函數調用時在函數方法緩存區占用內存變量名存在棧內存中,無名函數在函數方法定義區函數存在函數定義區關鍵字代表后面的內存創建在堆中變量里面存的地址是堆中的
對于下面的script代碼,它們在內存中是怎樣分配的呢?
var a = 123; // 賦值運算符,賦的是內存地址 var b = "hello"; function f() {} // 函數f就在函數(方法)定義區 f(); // 函數調用時在函數(方法)緩存區占用內存 var f1 = function() {} // 變量名f1存在棧內存中,無名函數在函數(方法)定義區 function Person(){} // 函數Person存在函數定義區 var p = new Person(); // new關鍵字代表后面的內存創建在堆中 var n = null; // 變量里面存的地址是堆中的null對象 var u = undefined; // 變量里面沒有存地址 typeof xx === "object";// 堆中 typeof xx === "function";// 函數(方法)緩存區 typeof xx === "number";// 池(常量) typeof xx === "string";// 池(常量) typeof xx === "boolean";// 池(常量) typeof xx === "undefined";// 棧中內存圖
下面是對應的內存圖:
閉包:在函數緩存區有永久的生命周期
通過調用一個函數,讓它在函數緩存區有永久的生命周期
(function(factory){ window.a = factory.apply(this); })(function(){ //閉包空間 var a,b,c,d; var d = {}; function f(){ } return {}; }) window.a.a;
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/103760.html
摘要:我的理解就是還處于被引用狀態。內存機制的內存空間分為棧堆其中棧存放變量,堆存放復雜對象。對堆內數據進行復制修改時理解閉包有了前面的鋪墊,我們再來看看閉包是怎么回事。這種反常的現象我們就叫它,中文名閉包。這就是閉包形成的原因了。 知識小儲備 ECMAScript 的數據有兩種類型:基本類型值和引用類型值,基本類型指的是簡單的數據段,引用類型指的是可能由多個值構成的對象。Undefined...
摘要:一棧數據結構與不同,中并沒有嚴格意義上區分棧內存與堆內存。引用數據類型的值是保存在堆內存中的對象。不允許直接訪問堆內存中的位置,因此我們不能直接操作對象的堆內存空間。為了更好的搞懂變量對象與堆內存,我們可以結合以下例子與圖解進行理解。 showImg(https://segmentfault.com/img/remote/1460000009784102?w=1240&h=683); ...
摘要:之前一篇文章我們詳細說明了變量對象,而這里,我們將詳細說明作用域鏈。而的作用域鏈,則同時包含了這三個變量對象,所以的執行上下文可如下表示。下圖展示了閉包的作用域鏈。其中為當前的函數調用棧,為當前正在被執行的函數的作用域鏈,為當前的局部變量。 showImg(https://segmentfault.com/img/remote/1460000008329355);初學JavaScrip...
摘要:在他的重學前端課程中提到到現在為止,前端工程師已經成為研發體系中的重要崗位之一。大部分前端工程師的知識,其實都是來自于實踐和工作中零散的學習。一基礎前端工程師吃飯的家伙,深度廣度一樣都不能差。 開篇 前端開發是一個非常特殊的行業,它的歷史實際上不是很長,但是知識之繁雜,技術迭代速度之快是其他技術所不能比擬的。 winter在他的《重學前端》課程中提到: 到現在為止,前端工程師已經成為研...
摘要:在他的重學前端課程中提到到現在為止,前端工程師已經成為研發體系中的重要崗位之一。大部分前端工程師的知識,其實都是來自于實踐和工作中零散的學習。一基礎前端工程師吃飯的家伙,深度廣度一樣都不能差。開篇 前端開發是一個非常特殊的行業,它的歷史實際上不是很長,但是知識之繁雜,技術迭代速度之快是其他技術所不能比擬的。 winter在他的《重學前端》課程中提到: 到現在為止,前端工程師已經成為研發體系...
閱讀 1768·2021-10-11 10:57
閱讀 2352·2021-10-08 10:14
閱讀 3393·2019-08-29 17:26
閱讀 3339·2019-08-28 17:54
閱讀 3019·2019-08-26 13:38
閱讀 2884·2019-08-26 12:19
閱讀 3608·2019-08-23 18:05
閱讀 1277·2019-08-23 17:04