成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

JavaScript是怎樣進行變量的內(nèi)存分配

本篇文章為大家展示了JavaScript是怎樣進行變量的內(nèi)存分配,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,桂平企業(yè)網(wǎng)站建設,桂平品牌網(wǎng)站建設,網(wǎng)站定制,桂平網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,桂平網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

JavaScript的所有變量(包括函數(shù))在整個處理過程中都是存放在內(nèi)存中,所以要對一個變量進行處理。首先得為變量分配內(nèi)存。JavaScript內(nèi)存分配和其他語言一樣,是根據(jù)變量的數(shù)據(jù)類型來分配內(nèi)存的,而JavaScript變量的數(shù)據(jù)類型由所賦的值的類型所決定的。JavaScript支持的數(shù)據(jù)類型可分為兩大類:基本數(shù)據(jù)類型和復雜數(shù)據(jù)類型。其中基本數(shù)據(jù)類型包含了數(shù)字(number)類型、字符串(string)類型、布爾(boolean)類型、未定義(undefined)類型、空(null)類型;復雜類型包含了對象(object)類型,在JavaScript中數(shù)組、函數(shù)都屬于對象類型。除了基本數(shù)據(jù)類型以外的數(shù)據(jù)類型全都是對象類型。在JavaScript中,基本數(shù)據(jù)類型變量分配在棧內(nèi)存中,其中存放了變量的值,對其是按值訪問的;而對象類型的變量則同時會分配棧內(nèi)存和堆內(nèi)存,其中棧內(nèi)存存放的是地址。堆內(nèi)存存放的是引用的值,棧內(nèi)存存放的地址指向堆內(nèi)存存放的值。對該變量的訪問是按引用來訪問的,即首先讀取到棧內(nèi)存存放的地址,然后按地址找到堆內(nèi)存讀取其中的值。

JavaScript之所以按變量的不同數(shù)據(jù)類型來分配內(nèi)存,主要原因是棧內(nèi)存比堆內(nèi)存小,而且棧內(nèi)存的大小是固定的,而堆內(nèi)存大小可以動態(tài)變化。基本數(shù)據(jù)類型的值的大小固定,對象類型的值大小不固定,所以將它們分別存放在棧內(nèi)存和堆內(nèi)存是合理的。

function Student (id,sno,name,age){ //函數(shù)定義,Student是一個函數(shù)變量    this.id = id;    this.sno = sno;    this.name = name;    this.age = age; } var num = 20; //num  是一個數(shù)字變量 var bol = false; //bol 是一個布爾變量 var str = "student"; //str 是一個字符串變量 var obj = {}; //obj是一個對象變量 var arr = ['a','b']; //arr是一個數(shù)組變量  var student = new Studenta(1,"199706010016","maomin",23); //student是一個對象變量

上述代碼中的Student變量定義了一個構造函數(shù),函數(shù)的定義代碼存放在堆內(nèi)存中,該內(nèi)存對應的地址存放在Student函數(shù)變量中。構造函數(shù)用于創(chuàng)建對象實例,最后一行代碼正是使用了該構造函數(shù)來創(chuàng)建了一個名字叫maomin的學生對象實例。學生實例創(chuàng)建完后會返回其在堆內(nèi)存中分配的地址,該地址被賦給了student變量。

上述代碼中的{}在堆內(nèi)存中創(chuàng)建了一個空對象,該對象的堆內(nèi)存中的地址被賦給了obj的變量。['a','b']是一個元素值分別為'a','b'的數(shù)組對象,該對象也在堆內(nèi)存中存放,其對應的地址賦給了arr變量。除了Student、obj、arr和student這幾個變量為對象變量外,其他幾個變量num、bol、str都是基本數(shù)據(jù)類型的變量,因而它們都存在棧內(nèi)存中。

基本數(shù)據(jù)類型的變量值存儲在棧內(nèi)存,而對象類型變量,包括函數(shù)、數(shù)組和對象,在棧內(nèi)存中存儲的只是引用對象的地址,該地址為對象在堆內(nèi)存分配的地址,因而通過該地址可以找到對象類型的變量值。

上述內(nèi)容就是JavaScript是怎樣進行變量的內(nèi)存分配,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享名稱:JavaScript是怎樣進行變量的內(nèi)存分配
文章路徑:http://jinyejixie.com/article42/ppishc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App設計網(wǎng)站導航、網(wǎng)站改版網(wǎng)頁設計公司、關鍵詞優(yōu)化電子商務

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管
天长市| 洪泽县| 临漳县| 嘉定区| 新竹县| 阳东县| 武山县| 青浦区| 肥东县| 银川市| 原平市| 四子王旗| 彭阳县| 交口县| 获嘉县| 桑植县| 揭东县| 梓潼县| 阆中市| 德庆县| 诸暨市| 磴口县| 秦安县| 安仁县| 东城区| 犍为县| 溧阳市| 玉门市| 汝州市| 格尔木市| 全南县| 万宁市| 西乌珠穆沁旗| 天台县| 湖南省| 日喀则市| 望江县| 屏南县| 泸溪县| 增城市| 灵山县|