摘要:引用值對(duì)象變量它里面的值是這個(gè)對(duì)象在堆內(nèi)存中的內(nèi)存地址,因此它傳遞的值也就是這個(gè)內(nèi)存地址,這也就是為什么函數(shù)內(nèi)部對(duì)這個(gè)參數(shù)的修改會(huì)體現(xiàn)在外部的原因了,因?yàn)樗鼈兌贾赶蛲粋€(gè)對(duì)象。
值類型(基本類型)
字符串(String)引用類型
數(shù)字(Number)
布爾(Boolean)
對(duì)空(Null)
未定義(Undefined)
Symbol: ES6引入的一種新的原始數(shù)據(jù)類型,表示獨(dú)一無(wú)二的值。
對(duì)象(Object)值類型和引用類型區(qū)別 聲明變量時(shí)不同的內(nèi)存分配:
數(shù)組(Array)
函數(shù)(Function)
原始值:存儲(chǔ)在棧(stack)中的簡(jiǎn)單數(shù)據(jù)段,也就是說(shuō),它們的值直接存儲(chǔ)在變量訪問(wèn)的位置。
引用值:存儲(chǔ)在堆(heap)中的對(duì)象,也就是說(shuō),存儲(chǔ)在變量處的值是一個(gè)指針(point),指向存儲(chǔ)對(duì)象的內(nèi)存地址。
不同的內(nèi)存分配機(jī)制也帶來(lái)了不同的訪問(wèn)機(jī)制在javascript中是不允許直接訪問(wèn)保存在堆內(nèi)存中的對(duì)象的,所以在訪問(wèn)一個(gè)對(duì)象時(shí),首先得到的是這個(gè)對(duì)象在堆內(nèi)存中的地址,然后再按照這個(gè)地址去獲得這個(gè)對(duì)象中的值,這就是傳說(shuō)中的按引用訪問(wèn)。
而原始類型的值則是可以直接訪問(wèn)到的。
復(fù)制變量時(shí)的不同原始值:在將一個(gè)保存著原始值的變量復(fù)制給另一個(gè)變量時(shí),會(huì)將原始值的副本賦值給新變量,此后這兩個(gè)變量是完全獨(dú)立的,他們只是擁有相同的value而已。
引用值:在將一個(gè)保存著對(duì)象內(nèi)存地址的變量復(fù)制給另一個(gè)變量時(shí),會(huì)把這個(gè)內(nèi)存地址賦值給新變量,也就是說(shuō)這兩個(gè)變量都指向了堆內(nèi)存中的同一個(gè)對(duì)象,他們中任何一個(gè)作出的改變都會(huì)反映在另一個(gè)身上。多了一個(gè)指針。
參數(shù)傳遞的不同(把實(shí)參復(fù)制給形參的過(guò)程)原始值:只是把變量里的值傳遞給參數(shù),之后參數(shù)和這個(gè)變量互不影響。
引用值:對(duì)象變量它里面的值是這個(gè)對(duì)象在堆內(nèi)存中的內(nèi)存地址,因此它傳遞的值也就是這個(gè)內(nèi)存地址,這也就是為什么函數(shù)內(nèi)部對(duì)這個(gè)參數(shù)的修改會(huì)體現(xiàn)在外部的原因了,因?yàn)樗鼈兌贾赶蛲粋€(gè)對(duì)象。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/101310.html
摘要:平時(shí)在復(fù)習(xí)基礎(chǔ)知識(shí)時(shí),經(jīng)常會(huì)遇到數(shù)據(jù)類型基礎(chǔ)數(shù)據(jù)類型內(nèi)置對(duì)象包裝類型對(duì)象,檢測(cè)數(shù)據(jù)類型時(shí),用到的值,感覺都差不多,但是又有差異。值與數(shù)據(jù)類型關(guān)系對(duì)比下圖,即可知值相較于基礎(chǔ)數(shù)據(jù)類型少多 平時(shí)在復(fù)習(xí)JS基礎(chǔ)知識(shí)時(shí),經(jīng)常會(huì)遇到JS數(shù)據(jù)類型、基礎(chǔ)數(shù)據(jù)類型、內(nèi)置對(duì)象、包裝類型對(duì)象,檢測(cè)數(shù)據(jù)類型時(shí),用到的typeof值,感覺都差不多,但是又有差異。今天特地整理下,方便理解。 JS數(shù)據(jù)類型 基礎(chǔ)數(shù)...
摘要:相當(dāng)于相當(dāng)于相當(dāng)于基礎(chǔ)類型不屬于包裝的對(duì)象類型小結(jié)數(shù)據(jù)類型是每一個(gè)語(yǔ)言的基礎(chǔ)由于屬于弱類型腳本語(yǔ)言因此數(shù)據(jù)只有在賦值后才能直到變量的數(shù)據(jù)類型下一次我們具體介紹對(duì)象的概念 前言 在《你所不知道的javascript上篇》書籍 以及《javascript權(quán)威指南》等書籍里面, 均有介紹js的數(shù)據(jù)類型,對(duì)象,原型,繼承。結(jié)合工作經(jīng)驗(yàn), 以及借用一些開源庫(kù)和框架的源碼, 進(jìn)行一次梳理。 首先介...
摘要:其他字符可以是字母下劃線美元符號(hào)或數(shù)字。在使用聲明變量,但沒有對(duì)其初始化時(shí),這個(gè)變量的值就是。從邏輯上思考,他們的值,一個(gè)是,一個(gè)報(bào)錯(cuò)他們的類型,卻都是。這時(shí),可以采用變量的類型進(jìn)行比較。類型有兩個(gè)值字面量和。 javascript 數(shù)據(jù)類型 javascript由于nodejs的出現(xiàn)將觸角延伸至各個(gè)開發(fā)領(lǐng)域, 也由于 ES6等后續(xù)版本的推出對(duì)程序員越來(lái)越友好, 收到程序員的強(qiáng)烈推崇,...
摘要:介紹編程數(shù)據(jù)結(jié)構(gòu),算法,內(nèi)存分配表單驗(yàn)證需要一門語(yǔ)言可以直接運(yùn)行在瀏覽器中,來(lái)完成表單驗(yàn)證的功能。 Javascript介紹編程(數(shù)據(jù)結(jié)構(gòu),算法,內(nèi)存分配)表單驗(yàn)證 需要一門語(yǔ)言可以直接運(yùn)行在瀏覽器中,來(lái)完成表單驗(yàn)證的功能。 瀏覽器廠商 網(wǎng)景 firefox js 標(biāo)準(zhǔn) js解釋器 IE js js解釋器 google js j...
摘要:舉個(gè)例子在上面的例子可以看到,我們聲明是一個(gè)數(shù)字,但是我們?cè)谥髮⒌闹涤指某闪俗址筒紶栔岛竺鏁?huì)講這些類型?;绢愋妥址硎疽粋€(gè)字符串,如。因此,我們可以寫一個(gè)函數(shù),用來(lái)精確檢測(cè)類型。 showImg(https://segmentfault.com/img/remote/1460000017309509?w=850&h=572); 定義 1. 什么是數(shù)據(jù)類型? 數(shù)據(jù)類型,就是將...
摘要:數(shù)據(jù)結(jié)構(gòu)類型擴(kuò)展相對(duì)之類的強(qiáng)類型語(yǔ)言,有一點(diǎn)很大的區(qū)別就是,數(shù)據(jù)結(jié)構(gòu)只有與,并且都是動(dòng)態(tài)可變的,而有等數(shù)據(jù)結(jié)構(gòu)。所以,為了能在中也使用這些數(shù)據(jù)結(jié)構(gòu),就應(yīng)運(yùn)而生。擴(kuò)充了中的不可變集合,即一旦創(chuàng)建就不能改變的數(shù)據(jù)類型。 js 數(shù)據(jù)結(jié)構(gòu)類型擴(kuò)展:immutable-js 相對(duì) java、.net 之類的強(qiáng)類型語(yǔ)言,js 有一點(diǎn)很大的區(qū)別就是,數(shù)據(jù)結(jié)構(gòu)只有 array 與 object,并且都...
閱讀 3167·2021-11-22 09:34
閱讀 2806·2021-09-22 15:28
閱讀 835·2021-09-10 10:51
閱讀 1865·2019-08-30 14:22
閱讀 2332·2019-08-30 14:17
閱讀 2746·2019-08-30 11:01
閱讀 2306·2019-08-29 17:19
閱讀 3674·2019-08-29 13:17