try{
aa();//這是一個未被定義的方法
}catch(e){
alert(e.name+":"+e.message);//輸出:ReferenceError:aa is not defined
}finally{
alert('我老是被調用');
}
一、var arr=[,,] - arr.length的值爲2
二、
var arr=[1,2,3];
arr['name']='yolo';//輸出3,'name'的索引不是非負整數
arr[100]='yolo';//輸出101,length從0開始計算
document.write(arr.length);
var arr1=[1,2,3,4,5];
console.log(arr1.length);//輸出5
console.log(arr1);// 輸出 "1,2,3,4,5"
arr1.length=3;
console.log(arr1);//輸出 "1,2,3",至關於刪除了第三個以後的元素,若是要刪除全部元素,只須要arr1.length=0;
Object.defineProperty(arr1,'length',{
writable:false
});//將length屬性設爲不可寫的
arr1.length=0;
console.log(arr1.length);
push()是用來在數組末端添加項,shift()在移除數組的第一個項(前端),實現隊列的先進先出FIFO;pop()在數組末端移除項,unshift()在數組前端添加項;(http://blog.csdn.net/rachel_2016/article/details/52448170)前端
for循環遍歷下標連續的數組
var arr=[1,2,'name'];
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
for-in遍歷數組,包含繼承下來的元素
var arr=[];
arr['name']='yolo';
arr['age']=23;
for(var i in arr){
console.log(arr[i]);
}
若是隻想遍歷自身屬性,能夠加if條件:if(arr.hasOwnProperty(i))
forEach()遍歷數組(E大寫),一樣只能遍歷下標連續的數組
var arr=[1,2,3]
arr.forEach(function(x){
console.log(x);
})
var arr=[1,2,3,4];
arr['name']='yolo';//forEach循環不能遍歷到它
arr.forEach(my);
function my(element,index,array){
console.log('要處理的數組爲:'+array);
console.log('元素索引:'+index+"--元素值:"+element);
}
輸出:
要處理的數組爲:1,2,3,4
元素索引:0--元素值:1
要處理的數組爲:1,2,3,4
元素索引:1--元素值:2
要處理的數組爲:1,2,3,4
元素索引:2--元素值:3
var arr=[1,2,11,20];
console.log(arr.join('-'));//join指定分隔符,輸出: "1-2-11-20"
console.log(arr.reverse());//reverse反轉數組,輸出: "20,11,2,1"
console.log(arr.sort());//sort()按照Unicode排序,輸出:"1,11,2,20"
//能夠指定排序函數
arr.sort(function(a,b){
return a-b;//若是a比b大,返回一個大於0數,此時b排在a前面,即從小到大排序
});
console.log(arr);//輸出:"1,2,11,20"
//經過元素屬性排序,輸出: "enid" "join" "yolo"
var user=[
{name:'yolo',age:23},
{name:'enid',age:18},
{name:'join',age:22},
];
user.sort(function(a,b){
if(a.name>b.name) return 1;
if(a.name<b.name) return -1;
return 0;
});
for(var i in user){
console.log(user[i].name);
}
var arr=[1,2];
res=arr.concat(3,4);//arr.concat([3,4]);
res=arr.concat([[3,4,5]]);//輸出:[1, 2, Array(3)]
console.log(res);//輸出:"1,2,3,4"
var arr=[1,2,3,4];
res=arr.slice(0,2);//從數組中截取指定元素,slice(start,length),忽略length,則截取到末尾;輸出: "1,2"
console.log(res);
var arr=['a','b','c','d','e'];
res=arr.splice(0,1);//從0開始,截取一個元素並返回這個元素,從原數組中刪除這個元素
console.log(res);//輸出:"a"
console.log(arr);//輸出:"b,c,d,e"
var arr=['a','b','c','d','e'];
var res=arr.splice(2);//從2開始截取到最後
console.log(res);//輸出:"c,d,e"
console.log(arr);//輸出:"a,b"
var arr=['a','b','c','d','e'];
var res=arr.splice(0,2,'!','&','?');//從0開始,截取兩個元素,額外添加後面的三個元素
console.log(res);//輸出:"a,b"
console.log(arr);//輸出: "!,&,?,c,d,e"
var arr=[1,2,3];
//map每一個元素都調用指定函數
res=arr.map(function(x){
return x*x;
});//輸出:"1,4,9"
console.log(res);
var arr=['a!','b','c!'];
res=arr.map(my);
function my(x){
return x.replace(/!/g,'?').toUpperCase();
};
console.log(res);//輸出:"A?,B,C?"
var arr=[1,3,5,78];
res=arr.filter(function(x){
return x<5;
});
console.log(res);//輸出:"1,3"
var arr=[1,3,5];
res=arr.reduce(function(a,b){
return a+b;
});
console.log(res);//輸出:9
//解析:第一次傳入:1,3 返回4
// 第二次傳入:4,5 返回9
//every檢測是否每一個元素都符合條件,some檢測是否有一個以上元素符合條件,返回布爾值
var arr=[1,2,3,18];
var res=arr.every(function(x){
return x<=10;
});
console.log(res);//輸出:false
//indexOf last
var arr=['a','b','c','ab','ac','a'];
var res=arr.indexOf('a');//輸出:0
res=arr.indexOf('A');//不存在,輸出-1
res=arr.indexOf('a',2);//從索引2開始搜索,輸出:5
res=arr.lastIndexOf('a');//輸出:5,從最後一個元素開始搜索
console.log(res);
Array.isArray(arr);//檢測arr是不是一個數組
arr.toString();//將數組轉換爲字符串