2.1 建立陣列
兩種方式:
1.new array();
//建立乙個空陣列
var arr1 = new array();
//建立乙個長度為10的空陣列,
var arr2 = new array(10);
//建立乙個包含乙個字串good的陣列
var arr3 = new array("good");
特別說明:當傳進去括號中的只有乙個值,這個值是數值的話,就會建立長度為這個數值的陣列;如果是其他值,那就是包含乙個這個值的陣列。2.陣列字面量,使用方括號:
// 建立空的
var fish = ;
//建立有值的,在括號裡新增
var cars = ["bmw","benz","ferrari"];
//注意,建立陣列不要留空項。瀏覽器相容性問題,ie8或以前版本會認為這是有3項,下面這種不建議。
var nums = [1,2,];
2.2 訪問陣列中的值
和其他語言一樣下標訪問(下標從0開始):
//建立陣列
var cars = ["bmw","benz","ferrari"];
console.log(cars[0]); //bmw
console.log(cars[2]); //ferrari
//修改陣列某個值,對其重新賦值就像
cars[0] = "lala";
2.3 常用屬性和方法這裡給出常用的屬性和方法,更詳細的在js的文件裡面有。1.length屬性:返回陣列的長度。
var num = [1,2,3,4,5]
console.log(arr.length); //5
//妙用:通過改變陣列的length可以改變陣列長度
arr.length = 10; //現在num 陣列長度為10了
console.log(num); //[1,2,3,4,5,,,,,] 後面5個值是空的
2.array.isarray()方法:判斷物件是不是陣列
//用了判斷改物件是不是陣列
var arr = ;
console.log(array.isarray(arr)); //true
console.log(array.isarray("s"); //false
3.join()方法:改變陣列分隔方式,返回新的分隔符字串
//原來是使用逗號連線的
var arr = [1,2,3,4,5];
//用|連線,注意只是返回字串,不會改變陣列裡面的連線方式
console.log((arr.join("|")); //'1|2|3|4|5'
console.log(arr); //[1,2,3,4,5] 還是一樣用逗號的
4.棧方法:pop()和push()組合使用實現棧的先進後出
//引入這兩方法是為了用陣列實現棧的功能
//push() :從陣列最後新增資料
var stack = new array();
//新增乙個10
stack.push(10);
//新增乙個5
stack.push(5);
//新增乙個100
stack.push(100);
//現在stack中有3個數值
console.log(stack); //[10,5,100]
//pop() :從陣列最後刪除並返回該資料
stack.pop(); //100 100被刪除
console.log(stack); //[10,5] 剩下兩數
5.佇列方法:shift()和push()組合使用實現先進先出
這裡就不再舉例了,類似與棧的操作,只是操作的函式不同,棧的pop是從後面刪除,而佇列的shift是從前面刪除,這樣就先進先出了。6.重排序方法:sort()和reverse()
//sort()預設是按照ascii碼表排序的,所以會出現下面這種情況
var arr = [5,12,18,1];
console.log(arr.sort()); //[1,12,18,5]
//為了可以對數字正常排序,為sort傳入乙個比較函式
function comp(a,b)
//再來排序
arr.sort(comp);
console.log(arr); //[1,5,12,18] 這次正確了
//reverse()是將陣列完全顛倒
arr.reverse();
console.log(arr); //[18,12,5,1]
7.合併和剪下:concat() , slice()
在該陣列的基礎上新增元素,返回乙個新陣列(不會改變原陣列)
var arr1 = [1,2,3];
//在arr1基礎新增4,5,6,並返回給arr2,不會改變arr
var arr2 = arr1.concat(4,5,6);
console.log(arr2); //[1,2,3,4,5,6]
通過傳入開始和終點值來剪下陣列,並返回新陣列
var arr3 = arr2.slice(1,5);
console.log(arr3); //[2,3,4,5]
8.最強大的陣列方法:splice()
刪除:接受兩個引數,第乙個是開始刪除位置,第二個是刪除的個數,返回乙個刪除項的陣列
//用來刪除
var arr = [1,2,3,4,5,6,7];
var del_arr = arr.splice(0,4); //從0位開始刪除4項,即前4項
console.log(del_arr); //[1,2,3,4]
console.log(arr); //[5,6,7] arr陣列剩下後面3項了
插入:輸入3個引數,起始位置,0(刪除項數設為0),要插入的值
//用來插入
var arr1 = [1,2,3,4,5,6];
arr1.splice(3,0,100);//從位置3插入乙個100值
console.log(arr1); //[1,2,3,100,4,5,6];
替換:指定3個引數,起始位置,要刪除的項,插入的值
//替換
var arr2 = [1,2,3,4,5];
//我要替換3,替換成100
arr2.splice(2,1,100); //起始位是2,刪除1項(就是3了),載插入100,ok
console.log(arr2); //[1,2,100,4,5]
9.位置函式:indexof()和lastindexof():這兩個方法用來找數值下標位置。都接受兩個引數,第乙個是要找的值,第二個是開始位置
//indexof() 只傳乙個引數時預設從0開始找數值,找到返回這個數的陣列位置,沒有返回-1
var arr = [100,12,123,1234];
console.log(arr.indexof(123)); //2 陣列的位置2
//lastindexof() 和indexof查詢順序正好相反,它從陣列末尾開始找起
console.log(arr.lastindexof(100)); //0
10.foreach()方法,對每一項進行處理
//接受乙個函式,函式傳入2個引數表示當前數值和其下標位置
var arr = [1,2,3,4,5];
arr.foreach(function(item, index)
//輸出 2,3,4,5,6 每一項都加1了
轉 感謝原作者
JS 基礎知識複習
那就乙個乙個的來吧,如何查詢上級作用域?其實很簡單,就一句話 這個函式在哪個作用域下定義的,那麼它的上級作用域就是誰,和函式在哪兒執行沒半毛線關係 文字描述比較蒼白,看下面的乙個例子吧 結果都是120,因為返回的函式是定義在fn裡面,而fn裡面的num 120,所以結果都是120關於記憶體釋放和作用...
js複習知識點
null和undefined具體在什麼時候使用?2.區域性變數和全域性變數生命週期?3.迴圈的具體使用場景 4.parseint支援16進製制和8進製,不支援科學計數法,pasefloat只支援10進製 0b二進位制 0o八進位制 0x十六進製制 多數情況下使用number 5.基本型別沒有屬性和方...
js 陣列常用知識
1.es5 es6陣列去重排序 方法一 es5 簡單的迴圈套迴圈遍歷對比 function way1 arr if repeat return arr1 方法二 es5 先排序,取出新的值與相鄰的值進行對比 function way2 arr return arr3 方法三 利用es6中set容器的...