亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Javascript中引用類型傳遞的知識(shí)點(diǎn)小結(jié)

 更新時(shí)間:2017年03月06日 11:01:02   作者:YiZong Xu  
這篇文章主要給大家介紹了關(guān)于Javascript中引用類型傳遞的知識(shí)點(diǎn),文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。

JS里面哪些類型是引用類型?

Object類型都是引用類型.(function,array,date,regexp..)

JS哪些類型是值傳遞?

基本類型都是值傳遞.值傳遞就是重新copy一個(gè)副本進(jìn)行傳遞.

如何把值類型的變量以引用類型的方式進(jìn)行傳遞?

通過(guò)把基礎(chǔ)類型包裝之后可以以引用類型傳遞.

ECMAScript提供了三個(gè)特殊的引用類型(基本包裝類型): Boolean,String,Number.

引用類型與基本包裝類型的區(qū)別: 對(duì)象的生存期不同.

見(jiàn)代碼:

var str = "hello js"; 
var str2 = str.substring(2,5); 


// str2的形成 在JS內(nèi)部是這樣實(shí)現(xiàn)的.

var str = new String('hello js');
var str2 = str.substring(2,5);
str = null ;

引用類型的內(nèi)存分配

如: var o = {name: ‘kobe'};

棧: 保存的是一個(gè)指針,指向的是對(duì)象在堆上面的內(nèi)存地址.我們通過(guò)指針句柄來(lái)操作堆上面的對(duì)象.

理解== 與 === 的區(qū)別

“===” 嚴(yán)格運(yùn)算符

嚴(yán)格運(yùn)算符的運(yùn)算規(guī)則:

1、不同數(shù)據(jù)類型

如果兩個(gè)值的類型不同,直接返回false。

2、同一類型的基本數(shù)據(jù)類型(string,boolean,number)

同一類型的原始類型的值(數(shù)值、字符串、布爾值)比較時(shí),值相同就返回true,值不同就返回false。

3、同一類型的復(fù)合數(shù)據(jù)類型

兩個(gè)復(fù)合類型(對(duì)象、數(shù)組、函數(shù))的數(shù)據(jù)比較時(shí),不是比較它們的值是否相等,而是比較它們是否指向同一個(gè)對(duì)象。

console.log( [1] === [1] ) // false

4、undefined和null

undefined 和 null 與自身嚴(yán)格相等。

console.log( null === null ) // true
console.log( undefined === undefined ) // true

“==” 相等運(yùn)算符

相等運(yùn)算符在比較相同類型的數(shù)據(jù)時(shí),與嚴(yán)格相等運(yùn)算符完全一樣。

在比較不同類型的數(shù)據(jù)時(shí),相等運(yùn)算符會(huì)先將數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換,然后再用嚴(yán)格相等運(yùn)算符比較。類型轉(zhuǎn)換規(guī)則如下(以下討論的是不同類型):

1、都是原始類型的值得情況

原始類型的數(shù)據(jù)會(huì)轉(zhuǎn)換成數(shù)值類型再進(jìn)行比較。

2、對(duì)象與原始類型值比較

對(duì)象(這里指廣義的對(duì)象,包括數(shù)值和函數(shù))與原始類型的值比較時(shí),對(duì)象轉(zhuǎn)化成原始類型的值,再進(jìn)行比較。

3、undefined和null

undefined和null與其他類型的值比較時(shí),結(jié)果都為false,它們互相比較時(shí)結(jié)果為true

console.log( null == undefined ) // true

4、相等運(yùn)算符的缺點(diǎn)

相等運(yùn)算符隱藏的類型轉(zhuǎn)換,會(huì)帶來(lái)一些違反直覺(jué)的結(jié)果。

console.log( "" == "0" ) // false 
console.log( 0 == "" ) // true
console.log( 0 == "0" ) // true
console.log( false == "false" ) // false
console.log( false == "0" ) // true

還有一個(gè)就是涉及undefined的條件判斷,undefined與null的條件判斷.可能會(huì)對(duì)你的代碼造成印象.

var a = undefined;
if(!a){
 console.log("1"); //1
}

var a = undefined;
if(a === null){
 console.log("1"); //無(wú)輸出
}

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

最新評(píng)論