JS基本類型和引用類型

JS中可以把變量分成兩部分,基本類型和引用類型敞掘。

JavaScript值類型和引用類型有哪些
(1)值類型:數(shù)值叽掘、布爾值、null渐逃、undefined够掠。
(2)引用類型:對象民褂、數(shù)組茄菊、函數(shù)。

如何理解值類型和引用類型及舉例
我們可以用“連鎖店”和“連鎖店鑰匙”來理解赊堪,不知道以下比喻合不合適面殖,-
(1)值類型理解:變量的交換等于在一個新的地方按照連鎖店的規(guī)范標(biāo)準(zhǔn)(統(tǒng)一店面理解為相同的變量內(nèi)容)新開一個分店哭廉,這樣新開的店與其它舊店互不相關(guān)脊僚、各自運營。
【值類型例子】
代碼如下:

function chainStore() 
{ 
var store1='Nike China'; 
var store2=store1; 
store1='Nike U.S.A.'; 
alert(store2); //Nike China 
} 
chainStore(); 

//把一個值類型(也可以叫基本類型)store2傳遞給另一個變量(賦值)時遵绰,其實是分配了一塊新的內(nèi)存空間辽幌,因此改變store1的值對store2沒有任何影響,因為它不像引用類型椿访,變量的交換其實是交換了指像同一個內(nèi)容的地址乌企。
(2)引用類型理解:變量的交換等于把現(xiàn)有一間店的鑰匙(變量引用地址)復(fù)制一把給了另外一個老板,此時兩個老板同時管理一間店成玫,兩個老板的行為都有可能對一間店的運營造成影響加酵。
【引用類型例子】
代碼如下:

function chainStore() 
{ 
var store1=['Nike China']; 
var store2=store1; 
alert(store2[0]); //Nike China 
store1[0]='Nike U.S.A.'; 
alert(store2[0]); //Nike U.S.A. 
} 
chainStore(); 

//在上面的代碼中,store2只進行了一次賦值哭当,理論上它的值已定猪腕,但后面通過改寫store1的值,發(fā)現(xiàn)store2的值也發(fā)生了改變钦勘,這正是引用類型的特征陋葡,也是我們要注意的地方。

引用類型值的一些問題:
1彻采、動態(tài)屬性腐缤。
JS中對象的屬性可以動態(tài)的添加并且賦值的朵栖,比如:

var obj = new Object();

obj.name = 'zjzhome';

console.log(obj.name) //zjzhome

但是基本類型不可以添加屬性,雖然這樣做不報錯柴梆。
2陨溅、復(fù)制值
引用類型復(fù)制和簡單類型不同,復(fù)制完成后新值和之前的值都是引用的同一個對象绍在,所以之前的值改變门扇,也會影響復(fù)制后的值,看個例子:

var obj1 = new Object()

obj1.name = 'zjzhome'

var obj2 = obj1

console.log(obj2.name); //zjzhome

obj1.name = 'zjz'

console.log(obj2.name) //zjz
image.png

3偿渡、函數(shù)傳參
JS中所有函數(shù)傳參都是按值傳遞的臼寄。

function setName(obj) { 
    obj.name = 'zjzhome'
}

var person = new Object()

setName(person)

console.log(person.name) //zjzhome 

看了上面的例子可能會覺得對象是按引用傳遞的,我們把例子修改一下:

function setName(obj) { 
    obj.name = 'zjzhome'; 
    obj = new Object();
    obj.name = 'zjz' 
}

var person = new Object()

setName(person)

console.log(person.name) // zjzhome 

person的值并沒有因為obj的修改而改變溜宽,說明不是按引用傳遞的吉拳。如果是按引用傳遞的,obj和person指向同一個對象适揉,當(dāng)obj改變留攒,person也會改變。

4嫉嘀、類型檢測
typeof用于檢測簡單類型炼邀,對于對象,我們更想知道的是什么類型的對象剪侮。所以引進了instanceof操作符拭宁。
person instanceof Object 這樣來檢測person是不是Object。
person instanceof Array 這樣來檢測person是不是Array瓣俯。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末杰标,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子彩匕,更是在濱河造成了極大的恐慌腔剂,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件推掸,死亡現(xiàn)場離奇詭異桶蝎,居然都是意外死亡,警方通過查閱死者的電腦和手機谅畅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門登渣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人毡泻,你說我怎么就攤上這事胜茧。” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵呻顽,是天一觀的道長雹顺。 經(jīng)常有香客問我,道長廊遍,這世上最難降的妖魔是什么嬉愧? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮喉前,結(jié)果婚禮上没酣,老公的妹妹穿的比我還像新娘。我一直安慰自己卵迂,他們只是感情好裕便,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著见咒,像睡著了一般偿衰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上改览,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天下翎,我揣著相機與錄音,去河邊找鬼恃疯。 笑死漏设,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的今妄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼鸳碧,長吁一口氣:“原來是場噩夢啊……” “哼盾鳞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瞻离,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤腾仅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后套利,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體推励,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年肉迫,在試婚紗的時候發(fā)現(xiàn)自己被綠了验辞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡喊衫,死狀恐怖跌造,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤壳贪,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布陵珍,位于F島的核電站,受9級特大地震影響违施,放射性物質(zhì)發(fā)生泄漏互纯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一磕蒲、第九天 我趴在偏房一處隱蔽的房頂上張望伟姐。 院中可真熱鬧,春花似錦亿卤、人聲如沸愤兵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秆乳。三九已至,卻和暖如春钻哩,著一層夾襖步出監(jiān)牢的瞬間屹堰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工街氢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扯键,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓珊肃,卻偏偏與公主長得像荣刑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子伦乔,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容