再談Javascript中的基本類(lèi)型和引用類(lèi)型(推薦)
一、基本類(lèi)型和引用類(lèi)型概述
js中數(shù)據(jù)類(lèi)型的值包括:基本類(lèi)型值和引用類(lèi)型值
基本數(shù)據(jù)類(lèi)型:undefined;null;boolean;number;string
引用類(lèi)型值:保存在內(nèi)存中,js不允許直接訪問(wèn)內(nèi)存位置,因此時(shí)操作引用而不是實(shí)際對(duì)象
二、如何檢測(cè)數(shù)據(jù)類(lèi)型
1.基本數(shù)據(jù)類(lèi)型的檢測(cè):使用typeof
var s = “AAA”; alert(typeof s); //返回string
2.引用類(lèi)型(對(duì)象類(lèi)型)檢測(cè):使用instanceof
alert(person instanceof Object); alert(person instanceof Array); alert(person instanceof Regexp);
3.特殊情況:instanceof檢測(cè)object始終返回true,檢測(cè)基本類(lèi)型的時(shí)候始終返回false(因?yàn)榛绢?lèi)型不是對(duì)象)
typeof檢測(cè)函數(shù)時(shí)返回Function,檢測(cè)正則表達(dá)式時(shí)返回Object
三、基本類(lèi)型和引用類(lèi)型的區(qū)別
1.引用類(lèi)型可以添加屬性,基本類(lèi)型不可以
2.復(fù)制時(shí),基本類(lèi)型是直接復(fù)制了一個(gè)新的變量,新舊兩個(gè)變量之間沒(méi)有關(guān)系;
引用類(lèi)型也復(fù)制了新的變量,但這個(gè)變量是一個(gè)指針,新舊兩個(gè)指針指向同一個(gè)對(duì)象
3.函數(shù)的參數(shù)傳遞:所有的參數(shù)傳遞原理都是將外部的變量通過(guò)復(fù)制的方式傳遞給函數(shù)的參數(shù)。因此,函數(shù)內(nèi)部對(duì)參數(shù)的操作對(duì)外部原變量無(wú)影響
下面分別以參數(shù)為基本類(lèi)型和引用類(lèi)型為例進(jìn)行驗(yàn)證:
function addTen(num){ num += 10; return num; } var count = 20; var result = addTen(count); //這里內(nèi)部對(duì)num的操作不會(huì)影響外部count的值 function setName(obj){ obj.name = “Nicholas”; obj = new Object(); obj.name = “Greg”; } var person = new Object(); setName(person); alert(person.name); //返回”Nicholas”,說(shuō)明仍然不影響外部的person對(duì)象的name
以上所述是小編給大家介紹的再談Javascript中的基本類(lèi)型和引用類(lèi)型(推薦) ,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript中for與forEach分別如何跳出循環(huán)
forEach的優(yōu)勢(shì)一個(gè)是它的回調(diào)函數(shù)形成了一個(gè)作用域,它的curItem和i不會(huì)像for循環(huán)一樣污染全局變量,這篇文章主要給大家介紹了關(guān)于JavaScript中for與forEach分別如何跳出循環(huán)的相關(guān)資料,需要的朋友可以參考下2024-01-01js中頁(yè)面的重新加載(當(dāng)前頁(yè)面/上級(jí)頁(yè)面)及frame或iframe元素引用介紹
用JavaScript刷新上級(jí)頁(yè)面和當(dāng)前頁(yè)面在某些情況下還是比較實(shí)用的,感興趣的朋友可以了解下另外介紹一下frame或iframe元素的引用方法,希望本文對(duì)你有所幫助2013-01-01使用OPENLAYERS3實(shí)現(xiàn)點(diǎn)選的方法
這篇文章主要為大家詳細(xì)介紹了使用OPENLAYERS3實(shí)現(xiàn)點(diǎn)選的幾種方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07Javascript中找到子元素在父元素內(nèi)相對(duì)位置的代碼
因?yàn)橄胱詣?dòng)定位到子元素,所以一直在找各種找尋元素位置的代碼。 不過(guò)總是找不到可以定位子元素相對(duì)位置的代碼2012-07-07JS精確判斷數(shù)據(jù)類(lèi)型代碼實(shí)例
這篇文章主要介紹了JS精確判斷數(shù)據(jù)類(lèi)型代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12jQuery實(shí)現(xiàn)可收縮展開(kāi)的級(jí)聯(lián)菜單實(shí)例代碼
這篇文章主要是對(duì)利用jQuery實(shí)現(xiàn)可收縮展開(kāi)的級(jí)聯(lián)菜單的實(shí)例代碼進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-11-11js禁止document element對(duì)象選中文本實(shí)現(xiàn)代碼
禁止document element對(duì)象選中文本在某在情況下還是很有必要的接下來(lái)本文將使用js實(shí)現(xiàn),感興趣的各位可以參考下哈2013-03-03