欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript的引用數(shù)據(jù)類型你了解多少

 更新時(shí)間:2022年02月11日 16:00:49   作者:執(zhí)手天涯@  
這篇文章主要為大家詳細(xì)介紹了JavaScript的引用數(shù)據(jù)類型,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

三種傳遞

  • 數(shù)據(jù)傳遞:變量傳遞給另外一個(gè)變量
  • 值傳遞:會(huì)把數(shù)據(jù)復(fù)制一份傳遞,(簡(jiǎn)單類型
  • 引用傳遞:會(huì)把數(shù)據(jù)地址復(fù)制一份傳遞,(引用類型)

1、Object

【解釋】: Object 是內(nèi)置的構(gòu)造函數(shù),用于創(chuàng)建普通對(duì)象。

1、創(chuàng)建對(duì)象語(yǔ)法

字面量創(chuàng)建對(duì)象示例

let obj = {
			uname : '阿飛',
			age : 22,
			sex : '男'
		}

構(gòu)造函數(shù)創(chuàng)建

// Object:創(chuàng)建普通對(duì)象的構(gòu)造函數(shù)
let obj = new Object( {uname : '阿飛', age : 22, sex : '男'} );

對(duì)象所有鍵的獲取

let re = Object.keys(obj)

對(duì)象所有值的獲取

let re = Object.values(obj);

2、普通對(duì)象在內(nèi)存中的存儲(chǔ)方式

普通對(duì)象數(shù)據(jù)保存在堆內(nèi)存之中,棧內(nèi)存中保存了普通對(duì)象在堆內(nèi)存的地址。

在這里插入圖片描述

普能對(duì)象在賦值時(shí)只是復(fù)制了棧內(nèi)中的地址,而非堆內(nèi)存中的數(shù)據(jù) [普通對(duì)象賦值后,無(wú)論修改哪個(gè)變量另一個(gè)對(duì)象的數(shù)據(jù)值也會(huì)相當(dāng)發(fā)生改變。]

在這里插入圖片描述

【小結(jié)】:

  1. 推薦使用字面量方式聲明對(duì)象,而不是 Object 構(gòu)造函數(shù)
  2. Object.assign 靜態(tài)方法創(chuàng)建新的對(duì)象
  3. Object.keys 靜態(tài)方法獲取對(duì)象中所有屬性
  4. Object.values 表態(tài)方法獲取對(duì)象中所有屬性值

【堆與棧的區(qū)別】:

  • 堆和棧是內(nèi)存中的數(shù)據(jù)存儲(chǔ)空間
  • 簡(jiǎn)單類型的數(shù)據(jù)保存在內(nèi)存的??臻g中
  • 引用類型的數(shù)據(jù)保存在內(nèi)存的堆空間中,棧內(nèi)存中存取的是引用類型的地址(房間號(hào))

2、Array

1、創(chuàng)建數(shù)組語(yǔ)法

字面量

let arr = [1, 2, 3];

構(gòu)造函數(shù)

let ary = new Array(1, 2, 3);

2、數(shù)組的在內(nèi)存中的存儲(chǔ)方式

數(shù)組在內(nèi)存中的存儲(chǔ)方式與普通對(duì)象一樣

在這里插入圖片描述

數(shù)組在賦值時(shí)只是復(fù)制了棧內(nèi)中的地址,而非堆內(nèi)存中的數(shù)據(jù)

在這里插入圖片描述

3、數(shù)組常用方法

1、 concat:用于拼接為新數(shù)組

		let arr = [1, 2, 3];
		let ary1 = ['a', 'b', 'c', 'd'];
		let ary2 = [11, 222, 333];
		let reArr = arr.concat(ary1, ary2, '張飛', '關(guān)羽', '趙云');
		console.log(reArr);

2、 join():用于連接數(shù)組的每個(gè)元素成為字符串

		let arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'];
		let str = arr1.join('');
		console.log(str);

3、 reverse:翻轉(zhuǎn)數(shù)組順序

		let arr3 = [1, 2, 3];
		let re = arr.reverse();
		console.log(re);

4、 indexOf:查找某個(gè)元素在數(shù)組中首次出現(xiàn)的索引位置,找不到就是返回-1

        let arr1 = ['a', 'b', 'c', 'd', 'a', 'b', 'f'];
		let re1 = arr1.indexOf('a');
		console.log(re1);

5、 lastIndexOf:查找某個(gè)元素在數(shù)組中尾次出現(xiàn)的索引位置,找不到就返回-1

		let re2 = arr1.lastIndexOf('b');
		console.log(re2);

6、 sort正序排列

		let arr2 = [3, 16, 22, 66, 123, 99];

		// sort正序排列:
		let re3 = arr2.sort(function (a, b) {
			return a - b;
		});

7、 sort倒序排列

		// sort倒序排列
		let arr2 = [3, 16, 22, 66, 123, 99];
		let re4 = arr2.sort(function (a, b) {
			return b - a;
		});

8、 判斷一個(gè)值是否是數(shù)組

		let a = [1, 2, 3];
		let re = Array.isArray(a);
		console.log(re);

9、 把偽數(shù)組轉(zhuǎn)換為真數(shù)組 Array.from(偽數(shù)組)

// 特別注意:要想把偽數(shù)組轉(zhuǎn)換為真數(shù)組必須有l(wèi)ength屬性
		let o = {
			0 : 'a',
			1 : 'b',
			2 : 'c',
			3 : 'd',
			4 : 'e',
			5 : 'f',
			6 : 'h',
			length : 4,
		}

		let ary = Array.from(o);

		console.log( ary );

10、forEach遍歷數(shù)組

		let arr = [
					{uname :'阿飛', age : 22, sex : '男'},
					{uname :'張三豐', age : 23, sex : '男'},
					{uname :'李尋歡', age : 21, sex : '男'},
					{uname :'張三豐1', age : 23, sex : '男'},
					{uname :'李尋歡1', age : 21, sex : '男'},
					{uname :'張三豐2', age : 23, sex : '男'},
					{uname :'李尋歡2', age : 21, sex : '男'},
					{uname :'張三豐2', age : 23, sex : '男'},
					{uname :'李尋歡2', age : 21, sex : '男'},
				];
		arr.forEach( item => {
			console.log(`姓名:${item.uname},年齡${item.age},性別${item.sex}`);
		} );

11、find:用于查找首次出現(xiàn)的滿足條件的值,并返回

		let re = [2, 6, 4, 7, 9, 3];
		let result = re.find(function (item, index, o) {
			return item > 5;
		})
		console.log(result);

12、findIndex:用于查找首次出現(xiàn)的滿足條件的值,并返回期所在索引值 沒(méi)有則返回-1

		let result1 = re.findIndex(function (item, index, o) {
			return item > 40;
		});
		console.log(result1);

13、some:用于查找如果有一個(gè)滿足條件返回true

		let result2 = re.some(function (item, index, o) {
			return item > 5;
		})
		console.log(result2);

14、every:用于查找滿足條件的元素,如果都滿足返回true,否則就是false

		let result3 = re.every(function (item, index, o) {
			return item > 5;
		});
		console.log(result3);

15、filter:篩選數(shù)組把滿足條件的元素放到新數(shù)組返回

		let result4 = re.filter(function (item, index, o) {
			return item > 5;
		});
		console.log(result4);

16、map:遍歷數(shù)組讓每個(gè)元素執(zhí)行一邊回調(diào)函數(shù),把所有結(jié)果放到新數(shù)組返回

		let result5 = re.map(function (item, index, o) {

			return item * item;

		});
		console.log(result5);

3、RegExp正則

1、創(chuàng)建語(yǔ)法

字面量

let reg = /abc/;

構(gòu)造函數(shù)

let reg1 = new RegExp(/abc/);

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!  

相關(guān)文章

  • JavaScript高級(jí)程序設(shè)計(jì)(第3版)學(xué)習(xí)筆記12 js正則表達(dá)式

    JavaScript高級(jí)程序設(shè)計(jì)(第3版)學(xué)習(xí)筆記12 js正則表達(dá)式

    前面在分析PhoneGap源碼的時(shí)候,曾經(jīng)總結(jié)過(guò)一次正則表達(dá)式的用法,為了不同系列文章的完整性,這里將那里的總結(jié)遷移過(guò)來(lái)
    2012-10-10
  • 詳解JavaScript匿名函數(shù)和閉包

    詳解JavaScript匿名函數(shù)和閉包

    這篇文章主要介紹了JavaScript匿名函數(shù)和閉包的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • javascript學(xué)習(xí)(一)構(gòu)建自己的JS庫(kù)

    javascript學(xué)習(xí)(一)構(gòu)建自己的JS庫(kù)

    庫(kù)是一個(gè)飽受爭(zhēng)議的熱門話題。一種觀點(diǎn)認(rèn)為它是一種非常棒的工具,是任何開(kāi)發(fā)者都不可或缺的;另一種觀點(diǎn)則認(rèn)為在不理解庫(kù)的內(nèi)部工作原理的情況下對(duì)庫(kù)形成依賴,會(huì)助長(zhǎng)懶惰的風(fēng)氣從而導(dǎo)致開(kāi)發(fā)者素質(zhì)下降
    2013-01-01
  • JavaScript DOM 學(xué)習(xí)第九章 選取范圍的介紹

    JavaScript DOM 學(xué)習(xí)第九章 選取范圍的介紹

    這一章會(huì)對(duì)范圍對(duì)象做一些介紹。使用這個(gè)對(duì)象你能選取HTML文檔中的任何部分然后根據(jù)選取信息作一些事情。最常見(jiàn)的范圍對(duì)象是由用戶選擇的。
    2010-02-02
  • javascript函數(shù)作用域?qū)W習(xí)示例(js作用域)

    javascript函數(shù)作用域?qū)W習(xí)示例(js作用域)

    javascript中沒(méi)有塊級(jí)作用域,取而代之的javascript使用的是函數(shù)作用域,下面使用示例學(xué)習(xí)一下js作用域的使用方法
    2014-01-01
  • javascript編程起步(第一課)

    javascript編程起步(第一課)

    javascript編程起步(第一課)...
    2007-01-01
  • JavaScript中的document.referrer在各種瀏覽器測(cè)試結(jié)果

    JavaScript中的document.referrer在各種瀏覽器測(cè)試結(jié)果

    這篇文章主要介紹了JavaScript中的document.referrer在各種瀏覽器測(cè)試結(jié)果,包括在多種情況下每個(gè)瀏覽器能否用document.referrer取到值,非常珍貴的測(cè)試結(jié)果,需要的朋友可以參考下
    2014-07-07
  • js變量、作用域及內(nèi)存詳解

    js變量、作用域及內(nèi)存詳解

    本文主要詳細(xì)分析了JS變量,作用域以及內(nèi)存問(wèn)題,同時(shí)附上非常多的實(shí)例,方便大家理解這3個(gè)概念,是篇不可多得的文章,希望對(duì)大家有所幫助
    2014-09-09
  • JavaScript中函數(shù)的常用寫法及調(diào)用方法

    JavaScript中函數(shù)的常用寫法及調(diào)用方法

    這篇文章介紹了JavaScript中函數(shù)的常用寫法及調(diào)用方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • 好好了解一下Cookie(強(qiáng)烈推薦)

    好好了解一下Cookie(強(qiáng)烈推薦)

    Cookie是由服務(wù)器端生成,發(fā)送給User-Agent,瀏覽器會(huì)將Cookie的key/value保存到某個(gè)目錄下的文本文件內(nèi),下次請(qǐng)求同一網(wǎng)站時(shí)就發(fā)送該Cookie給服務(wù)器,對(duì)cookie知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-06-06

最新評(píng)論