|
在正式開始之前,我想先說(shuō)兩句,理解Javascript系列博文是通過(guò)帶領(lǐng)大家分析Javascript執(zhí)行時(shí)的內(nèi)存分配情況,來(lái)解釋Javascript原理,具體會(huì)涵蓋Javascript預(yù)加載,閉包原理,面象對(duì)象,執(zhí)行模型,對(duì)象模型...,文章的視角很特別,也非常深入,希望大家能接受這種形式,并提供寶貴意見。
原始值和引用值
在ECMAScript中,變量可以存放兩種類型的值,即原始值和引用值。原始值指的就是代表原始數(shù)據(jù)類型(基本數(shù)據(jù)類型)的值,即Undefined,Null,Number,String,Boolean類型所表示的值。引用值指的就是復(fù)合數(shù)據(jù)類型的值,即Object,Function,Array,以及自定義對(duì)象,等等。
棧和堆
與原始值與引用值對(duì)應(yīng)存在兩種結(jié)構(gòu)的內(nèi)存即棧和堆。棧是一種后進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),在Javascript中可以通過(guò)Array來(lái)模擬棧的行為
var arr = []; //創(chuàng)建一個(gè)棧arr.push("apple");//壓入元素"apple" ["apple"]arr.push("orange");//壓入元素"orange" ["apple","orange"]arr.pop();//彈出"orange" ["apple"]arr.push("banana");//壓入元素"banana" ["apple","banana"]
it知識(shí)庫(kù):理解Javascript_01_理解內(nèi)存分配,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。