摘要:數(shù)組數(shù)組的概念所謂數(shù)組就是用來存儲多個值的容器數(shù)組中的每一個值叫元素每個元素都有唯一的一個位置用數(shù)字表示的叫做索引數(shù)組用字符串表示叫關(guān)聯(lián)數(shù)組備注數(shù)組是無類型的沒有特定類型要求就是存啥都行注意數(shù)組是動態(tài)的就是根據(jù)需要可以插入新的東西也可以刪
數(shù)組 數(shù)組的概念
所謂數(shù)組就是 - 用來存儲多個值的容器,數(shù)組中的每一個值叫元素,每個元素都有唯一的一個位置,用數(shù)字表示的叫做索引數(shù)組,用字符串表示叫關(guān)聯(lián)數(shù)組
備注: 數(shù)組是無類型的:沒有特定類型要求(就是存啥都行)
注意: 數(shù)組是動態(tài)的:就是根據(jù)需要可以插入新的東西,也可以刪除指定的元素
一維數(shù)組 定義數(shù)組就是只有一個行或者一個列
一維數(shù)組分為三種:
1.字面量/直接量方式:
語法:
var 數(shù)組名稱 = [元素1,元素2,元素3,...]
注意: 變量聲明后只寫一個中括號"[]" - 表示定義一個空數(shù)組
示例代碼:
/* 變量聲明(設(shè)置數(shù)組名稱)并給數(shù)組賦值 */ var arr1 = [];// 調(diào)用結(jié)果為 [] - 表示空數(shù)組 var arr2 = [1000,"一花一世界",true];// 調(diào)用結(jié)果為 [ 1000, "一花一世界", true ] console.log(arr1);// 調(diào)用結(jié)果為 [] console.log(arr2);// 調(diào)用結(jié)果為 [ 1000, "一花一世界", true ]
控制臺調(diào)用結(jié)果圖:
2.構(gòu)造函數(shù)方式:
語法:
var 數(shù)組名稱 = new Array(元素1,元素2,元素3,...)
var 數(shù)組名稱 = new Array(length)
length - number類型, 表示數(shù)組的長度(也是存在元素的個數(shù))的意思
注意: 變量聲明后new Array()小括號"()"中不填寫任何內(nèi)容 - 表示定義一個空數(shù)組
示例代碼:
var arr3 = new Array();//調(diào)用結(jié)果為 [] - 表示空數(shù)組 var arr4 = new Array(1000,"一花一世界",true);// 調(diào)用結(jié)果為 [ 1000, "一花一世界", true ] console.log(arr3);// 調(diào)用結(jié)果為 [] console.log(arr4);// 調(diào)用結(jié)果為 [ 1000, "一花一世界", true ]
控制臺調(diào)用結(jié)果圖:
3.函數(shù)方式:
語法:
var 數(shù)組名稱 = Array(元素1,元素2,元素3,...)
var 數(shù)組名稱 = Array(length)
length - number類型,表示數(shù)組的長度(也是存在元素的個數(shù))的意思
示例代碼:
var arr7 = Array();// 調(diào)用結(jié)果為 [] - 表示空數(shù)組 var arr8 = Array(1000,"一花一世界",true);// 調(diào)用結(jié)果為 [ 1000, "一花一世界", true ] var arr9 = Array(10);// 調(diào)用結(jié)果為 [ <10 empty items> ] - 表示個是數(shù)組的長度為10個 console.log(arr7);// 調(diào)用結(jié)果為 [] console.log(arr8);// 調(diào)用結(jié)果為 [ 1000, "一花一世界", true ] console.log(arr9);// 調(diào)用結(jié)果為 [ <10 empty items> ]
控制臺調(diào)用結(jié)果圖:
注意:
字面量/直接量方式中的中括號"[]"中直接寫"10"就是表示數(shù)組的意思
構(gòu)造函數(shù)方式中new Array()小括號中"()"直接寫"10"是表示數(shù)組的長度
函數(shù)方式和構(gòu)造函數(shù)方式一樣
示例代碼:
var arr6 = [10];//調(diào)用結(jié)果為 [10] var arr5 = new Array(10);// 調(diào)用結(jié)果為 [ <10 empty items> ] - 表示個是數(shù)組的長度為10個 console.log(arr5);// 調(diào)用結(jié)果為 [ <10 empty items> ] - 表示個是數(shù)組的長度為10個 console.log(arr6);// 調(diào)用結(jié)果為 [10]
控制臺調(diào)用結(jié)果圖:
索引數(shù)組就是表示數(shù)組中元素的位置.用數(shù)字值表示
數(shù)字值表示元素的位置 - 叫角標或下標
數(shù)組的長度與元素的個數(shù)是一致的
注意: 索引數(shù)組的角標是從0開始的
示例代碼:
var arr = [];// 定義一個空數(shù)組 arr [0] = "一花一世界"; arr [1] = true; console.log(arr);// 調(diào)用結(jié)果為 [ "一花一世界", true ] console.log(arr.length);// 調(diào)用結(jié)果為 2 - 表示被調(diào)用數(shù)組的長度和元素個數(shù)是 2 個
控制臺調(diào)用結(jié)果圖:
關(guān)聯(lián)數(shù)組就是表示數(shù)組中元素的位置使用字符串表示
注意: 關(guān)聯(lián)數(shù)組的長度與元素的個數(shù)不一致
原因: JavaScript的官方目前不支持關(guān)聯(lián)數(shù)組
所以: 關(guān)聯(lián)數(shù)組目前無法調(diào)用到元素的個數(shù)和長度
示例代碼:
var arr = [];// 定義一個空數(shù)組 arr["name"] = "孫悟空"; arr["age"] = 500+"歲"; arr["job"] = "取經(jīng)"; console.log(arr);// 調(diào)用結(jié)果為 [ name: "孫悟空", age: "500歲", job: "取經(jīng)" ] console.log(arr.length);// 調(diào)用結(jié)果為 0
控制臺調(diào)用結(jié)果圖:
索引數(shù)組的位置允許不連續(xù) - 沒有定義元素的位置默認為空(undefined)
稀疏數(shù)組 - 數(shù)組的長度與元素的個數(shù)不一致
備注:
得到undefined值的幾種方式:
定義變量,但未初始化值
定義變量,并初始化值為undefined
訪問數(shù)組中未定義的位置的元素值(默認為undefined)
示例代碼:
var arr = [];// 定義一個空數(shù)組 arr[0] = "孫悟空"; arr[2] = 500+"歲"; arr[5] = "取經(jīng)"; console.log(arr);// 調(diào)用結(jié)果為 [ "孫悟空", <1 empty item>, "500歲", <2 empty items>, "取經(jīng)" ] console.log(arr.length);//調(diào)用結(jié)果為 6 /* 處理稀疏數(shù)組,得到正常的索引值 */ var newArr = []; /* 利用循環(huán)語句獲取出所有的undefined */ for (var i = 0; i控制臺調(diào)用結(jié)果圖:
訪問數(shù)組的元素注意: 調(diào)用數(shù)組名稱時,得到的只是存儲的所有元素數(shù)據(jù)的集合
注意: 數(shù)組默認定義未索引數(shù)組
注意: JavaScript中的關(guān)聯(lián)數(shù)組可以定義和訪問
如果訪問了數(shù)組中未定義的位置元素,首先語法不報錯,其次結(jié)果為undefined
注意: 索引數(shù)組中的索引值最大為 arr.length - 1
就是索引值最大的減 1
比如: 上面的索引數(shù)組有三個元素 - 就是 3 - 1
因為: 索引數(shù)組的索引值第一個是 0
示例代碼:
/* 定義數(shù)組的默認為索引數(shù)組 */ var arr = ["一花一世界",1000,true]; /* 調(diào)用數(shù)組名稱時,得到的是存儲所有元素數(shù)據(jù)的集合 */ console.log(arr);// 調(diào)用結(jié)果為 [ "一花一世界", 1000, true ] /* 調(diào)用索引數(shù)組中的元素 - 用法: 數(shù)組名稱[索引值] */ console.log(arr[0]);// 調(diào)用結(jié)果為 一花一世界 console.log(arr[4]);// 調(diào)用結(jié)果為 undefined //關(guān)聯(lián)數(shù)組 var arr = [];// 定義一個空數(shù)組 arr["name"] = "孫悟空"; arr["age"] = 500+"歲"; arr["job"] = "取經(jīng)"; console.log(arr["name"]);// 調(diào)用結(jié)果為 孫悟空數(shù)組的復(fù)制表示一個數(shù)組對另一個數(shù)組進行復(fù)制
復(fù)制分為深復(fù)制和淺復(fù)制
示例代碼:
// 變量聲明并賦值 var v = 100; // 變量聲明并賦值 var result = v; console.log(v);// 調(diào)用結(jié)果為 100 console.log(result);// 調(diào)用結(jié)果為 100 v = 200; console.log(result);// 調(diào)用結(jié)果為 100 var arr1 = ["一花一世界",true]; var arr2 = arr1; console.log(arr1);// 調(diào)用結(jié)果為 [ "一花一世界", true ] console.log(arr2);// 調(diào)用結(jié)果為 [ "一花一世界", true ] arr1 = [100]; console.log(arr1);// 調(diào)用結(jié)果為 [ 100 ] console.log(arr2);// 調(diào)用結(jié)果為 [ "一花一世界", true ] arr1[0] = 100; console.log(arr1);// 調(diào)用結(jié)果為 [ 100 ] console.log(arr2);// 調(diào)用結(jié)果為 [ "一花一世界", true ]分析圖:
數(shù)組的修改表示對數(shù)組中的數(shù)據(jù)值進行修改
通過數(shù)組的索引值找到對應(yīng)元素的位置,在通過對指定數(shù)據(jù)進行重新賦值來完成數(shù)組修改
示例代碼:
// 索引數(shù)組 var arr1 = []; arr1[0] = "一花一世界"; arr1[1] = true; // 關(guān)聯(lián)數(shù)組 var arr2 = [];// 定義一個空數(shù)組 arr2["name"] = "孫悟空"; arr2["age"] = 500+"歲"; arr2["job"] = "取經(jīng)"; // 通過數(shù)組的索引值找到對應(yīng)元素的位置, 再通過重新賦值的操作進行修改 arr1[1] = "一葉一孤城"; console.log(arr1);// 調(diào)用結(jié)果為 [ "一花一世界", "一葉一孤城" ] arr2["job"] = "打妖怪"; console.log(arr2);// 調(diào)用結(jié)果為 [ name: "孫悟空", age: "500歲", job: "打妖怪" ] // 如果是新的索引值,就是給數(shù)組新增一個元素 arr1[2] = "極樂凈土"; console.log(arr1);// 調(diào)用結(jié)果為 [ "一花一世界", "一葉一孤城", "極樂凈土" ]控制臺調(diào)用效果圖:
數(shù)組的刪除表示對數(shù)組中的數(shù)據(jù)值進行刪除
使用delete運算符來刪除數(shù)據(jù)值
但是只刪除數(shù)據(jù)值,不刪除數(shù)據(jù)值所占的位置空間
注意: 數(shù)組進行刪除后會變成稀疏數(shù)組
示例代碼:
// 索引數(shù)組 var arr1 = []; arr1[0] = "一花一世界"; arr1[1] = true; /* 使用 delete 運算符進行刪除數(shù)組的元素 * 注意: 只是刪除元素內(nèi)容,而對應(yīng)的位置會被保留 */ delete arr1[1]; console.log(arr1);//調(diào)用結(jié)果為 [ "一花一世界", <1 empty item> ] console.log(arr1.length);//調(diào)用結(jié)果為 2 // 關(guān)聯(lián)數(shù)組 var arr2 = [];// 定義一個空數(shù)組 arr2["name"] = "孫悟空"; arr2["age"] = 500+"歲"; arr2["job"] = "取經(jīng)"; delete arr2["age"]; console.log(arr2);// 調(diào)用結(jié)果為 [ name: "孫悟空", job: "取經(jīng)" ] console.log(arr2.length);// 調(diào)用結(jié)果為 0控制臺調(diào)用效果圖:
循環(huán)遍歷數(shù)組示例代碼:
var arr = ["一花一世界", 101, true, undefined]; // while語句 /*var i = 0; while (i < arr.length){ console.log(arr[i]); i++; }*/ // do...while語句 /*var i = 0; do { console.log(arr[i]); i++; } while (i < arr.length);*/ // for語句 for (var i=0; i控制臺調(diào)用效果圖:
for...in語句注意: for..in語句可以循環(huán)遍歷關(guān)聯(lián)數(shù)組, for語句不行
注意: for..in語句循環(huán)遍歷稀疏數(shù)組(直接得到有效元素值), for語句不行
示例代碼:
// 關(guān)聯(lián)數(shù)組的length屬性為 0 var arr1 = []; arr1["name"] = "孫悟空"; arr1["age"] = 500+"歲"; arr1["job"] = "取經(jīng)"; /*for (var i=0; i
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/96779.html
摘要:類型檢測數(shù)組示例代碼調(diào)用結(jié)果為方法作用用于判斷當前對象的數(shù)據(jù)類型結(jié)果特點可以準確判斷出當前變量的類型調(diào)用結(jié)果為調(diào)用結(jié)果為報錯調(diào)用結(jié)果為調(diào)用結(jié)果為方法判斷指定類型是否出現(xiàn)在當前對象的原型鏈中調(diào)用結(jié)果為轉(zhuǎn)換數(shù)組提供了兩種方法用于數(shù)組的轉(zhuǎn) Array類型 檢測數(shù)組 示例代碼: var arr = [1,2,3,4,5]; console.log(arr instanceof Array);/...
摘要:類型大小寫轉(zhuǎn)換表示將小寫內(nèi)容轉(zhuǎn)換為大寫內(nèi)容表示將大小內(nèi)容轉(zhuǎn)換為小寫內(nèi)容示例代碼構(gòu)造函數(shù)方式表示將小寫內(nèi)容轉(zhuǎn)換為大寫內(nèi)容表示將大小內(nèi)容轉(zhuǎn)換為小寫內(nèi)容調(diào)用結(jié)果為調(diào)用結(jié)果為控制臺調(diào)用效果圖根據(jù)指定位置獲取字符串表示通過指定字符串中指定字符 String類型 大小寫轉(zhuǎn)換 toUpperCase() - 表示將小寫內(nèi)容轉(zhuǎn)換為大寫內(nèi)容 toLowerCase() - 表示將大小內(nèi)容轉(zhuǎn)換為小寫內(nèi)容...
摘要:嚴格模式嚴格模式的概念所謂嚴格模式就是對中的一種限制性更強的方式屬于代碼的一種強制規(guī)則來規(guī)范代碼的格式簡單的說就是必須按照嚴格模式的規(guī)則書寫代碼否則就會報錯嚴格模式修正了一些引擎難以優(yōu)化的錯誤同樣的代碼有些時候嚴格模式會比非嚴格模式下更加快 嚴格模式 嚴格模式的概念 所謂嚴格模式就是對JavaScript中的一種限制性更強的方式. 屬于代碼的一種強制規(guī)則,來規(guī)范代碼的格式簡單的說就是...
摘要:類型與函數(shù)的概念函數(shù)這樣的一段代碼它只定義一次但是可能被執(zhí)行或調(diào)用多次類型是提供的引用類型之一通過類型創(chuàng)建對象在中函數(shù)也是對象的形式存在注意每個函數(shù)都是以個對象與函數(shù)函數(shù)聲明方式示例代碼一笑一人生字面量方式示例代碼一花一世界判斷函數(shù)是否為類 Function類型 Function與函數(shù)的概念 函數(shù)這樣的一段JavaScript代碼,它只定義一次,但是可能被執(zhí)行或調(diào)用多次 Functi...
摘要:函數(shù)函數(shù)的概述所謂函數(shù)就是只被定義一次但可能被執(zhí)行或調(diào)用多次變量與函數(shù)的區(qū)別變量存的是數(shù)據(jù)內(nèi)容而函數(shù)存的是語句塊定義函數(shù)備注定義函數(shù)時函數(shù)體的內(nèi)容不會被執(zhí)行調(diào)用函數(shù)時函數(shù)體才被執(zhí)行注意一般以個函數(shù)就去完成一個功能函數(shù)聲明方式語法函數(shù)名稱 函數(shù) 函數(shù)的概述 所謂函數(shù)就是只被定義一次,但可能被執(zhí)行或調(diào)用多次 變量與函數(shù)的區(qū)別: 變量存的是數(shù)據(jù)內(nèi)容而函數(shù)存的是語句塊 定義函數(shù) 備注: ...
閱讀 2195·2023-04-25 20:45
閱讀 1103·2021-09-22 15:13
閱讀 3679·2021-09-04 16:48
閱讀 2603·2019-08-30 15:53
閱讀 961·2019-08-30 15:44
閱讀 986·2019-08-30 15:43
閱讀 1038·2019-08-29 16:33
閱讀 3459·2019-08-29 13:08