摘要:基本類型存放在棧中,其大小確定,內(nèi)存空間自動分配。我們無法直接訪問和操作堆中的數(shù)據(jù),只能通過一個指針間接的對引用類型的數(shù)據(jù)進(jìn)行操作。
這篇文章主要 解決的問題 為: js的基本類型有那些?引用類型有哪些? 基本類型和引用類型有什么區(qū)別?null和undefined的區(qū)別? 哪一個存在堆上面,哪一個存在棧上面。
JavaScript有5種基本類型:
undefined null boolean string number 五種按值訪問的類型
var a; // undefined表示變量聲明了,卻沒有賦值 var a=null; // null表示空值 var a="字符串"; // string字符串 var a=false; // boolean布爾值包括true,false var a=1; // number,可以是整數(shù)和小數(shù) var a=NaN // 非數(shù)字
4種引用類型:
Object Array Data RegExp
var a=[1,2,3]; // Array var a=new Date(); // Date var a={}; // Object
Null和Undefined的區(qū)別:
null :
是一個空對象,同時也是js保留的關(guān)鍵字,用來定義一個空值。
在數(shù)值運(yùn)算中自動轉(zhuǎn)化為0,轉(zhuǎn)為Boolean時為false。
typeof null; "object"
undefined :
是全局對象的一個特殊屬性,代表一個未確定的值
變量被聲明的但未賦值的時候?yàn)閡ndefined;函數(shù)沒有返回值時,返回undefined
參與運(yùn)算的時候,結(jié)果為NAN,轉(zhuǎn)為Boolean時為false
"undefined" in window ture
哪一個存在棧上?哪一個存在堆上?
簡單的說一下:
棧 會自動分配內(nèi)存空間,由系統(tǒng)自動釋放。
堆 時動態(tài)分配的內(nèi)存,大小不確定,不會自動釋放,而且不允許直接訪問。
基本類型: 存放在棧中,其大小確定,內(nèi)存空間自動分配。
引用類型: 存放在堆中,如數(shù)組等,它們大小不確定,不固定。
舉個栗子
var a = 1; var b = 2; var obj = { name = "holy" };
我們來看一下在內(nèi)存中是如何存儲的
可以看到基本類型 a 和 b 變量名和相應(yīng)的值都是存儲在 棧 中的,而引用類型 obj 在棧中存儲的是一個地址,這個地址指向 堆 中的一個位置,該位置存放的就是obj實(shí)際的值 { name = "holy" }。我們無法直接訪問和操作堆中的數(shù)據(jù),只能通過一個指針間接的對引用類型的數(shù)據(jù)進(jìn)行操作。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/110097.html
摘要:被識別為結(jié)束符。變量時被認(rèn)為時有名字的容器。常量一旦被聲明初始化,值并不能被改變。字符串可以看成右字符組成的數(shù)組,可能被誤認(rèn)為可變的。表達(dá)式?jīng)]有顯示的返回任何內(nèi)容。 Java script 簡介 Javascript 是一門跨平臺,面向?qū)ο蟮妮p量級腳本語言,運(yùn)行于Javascript解釋權(quán)/引擎 avascript內(nèi)置了一個包含一系列對象的標(biāo)準(zhǔn)庫,比如數(shù)組,日期,數(shù)字和一個語言元素合...
摘要:以和為例,說明中的數(shù)字?jǐn)?shù)據(jù)如何轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)。對象用來表示通用的固定長度的原始二進(jìn)制數(shù)據(jù)緩沖區(qū)。中的數(shù)字?jǐn)?shù)據(jù)如何轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)對和有了一個大概的了解,下面讓我們來看下它是如何進(jìn)行二進(jìn)制數(shù)據(jù)操作的。 概述 本文主要通過對JavaScript中數(shù)字?jǐn)?shù)據(jù)與二進(jìn)制數(shù)據(jù)之間的轉(zhuǎn)換,讓讀者能夠了解在JavaScript中如何對數(shù)字類型(包括但不限于Number類型)進(jìn)行處理。 二進(jìn)制數(shù)據(jù)在日常...
摘要:變量與常量變量定義變量是存儲數(shù)據(jù)信息的容器。中,變量是弱類型,也被稱為松散類型。三類型布爾類型只有兩個值均為小寫如果大寫活著大小寫混合,識別為另一個變量名稱。 JavaScript簡介 JavaScript是一門跨平臺、面向?qū)ο蟮妮p量級腳本語言,運(yùn)行于JavaScript解釋器或者引擎中。JavaScript中,包括三個主要的部分1.核心語法內(nèi)容(ECMAScript)2.文檔對象模型...
摘要:解釋一行,執(zhí)行一行這也意味著你可以使用同一個變量保存不同類型的數(shù)據(jù)二數(shù)據(jù)類型最新的標(biāo)準(zhǔn)定義了種數(shù)據(jù)類型種原型數(shù)據(jù)類型布爾值,和一個表明值的特殊關(guān)鍵字。我們稱這些類型的值為原始值四布爾值布爾值數(shù)據(jù)類型只能有兩個值,它們是文本和。 一、動態(tài)類型 JavaScript 是一種弱類型或者說動態(tài)語言。這意味著你不用提前聲明變量的類型,在程序運(yùn)行過程中,類型會被自動確定。(解釋一行,執(zhí)行一行)這也...
摘要:通常一個完成的不僅僅包含了還包括了以及相關(guān)版本該版本在中使用。基于原型函數(shù)先行的語言使用基于原型的的繼承機(jī)制,函數(shù)是的第一等公民其他相關(guān)的語言特性編譯型語言把做好的源程序全部編譯成二進(jìn)制代碼的可運(yùn)行程序。 轉(zhuǎn)載請注明出處,創(chuàng)作不易,更多文章請戳 https://github.com/ZhengMaste... 前言:JavaScript誕生于1995年,它是一門腳本語言,起初的目...
摘要:字符串類型的字符串類型用于表示文本數(shù)據(jù)。例如,使用一個分隔符,一個可以模仿一個列表一個的數(shù)組可能更適合一些。不幸的是,當(dāng)一個分隔符在用于列表中的元素時,打亂了這個列表。屬性的值可以是任意類型,包括具有復(fù)雜數(shù)據(jù)結(jié)構(gòu)的對象。 編程語言都具有內(nèi)建的數(shù)據(jù)結(jié)構(gòu),但各種編程語言的數(shù)據(jù)結(jié)構(gòu)常有不同之處。本文試圖列出 JavaScript 語言中內(nèi)建的數(shù)據(jù)結(jié)構(gòu)及其屬性,它們可以用來構(gòu)建其他的數(shù)據(jù)結(jié)構(gòu);...
閱讀 1269·2021-09-22 15:18
閱讀 2598·2021-09-22 15:17
閱讀 2225·2019-08-30 15:55
閱讀 1573·2019-08-30 15:54
閱讀 1042·2019-08-30 13:12
閱讀 624·2019-08-30 13:12
閱讀 1676·2019-08-29 11:33
閱讀 1437·2019-08-26 17:04