1.in關鍵字
屬性名 in 物件,用來判斷某個屬性在物件中是否存在與其嚴格相等的屬性名,回傳boolean值
屬性名必須是字串或數字
var obj = {
a : 1,
b : 2
}
console.log('a' in obj);//回傳true,obj物件中存在a屬性名
var arr = [12,11,10];
console.log(12 in arr);//回傳false,原因arr陣列中12,11,10三個值對應的屬性名分別是0,1,2
2.for-in回圈
for(var prop in obj){
//回圈陳述句
}
取出物件的所有屬性名,每次回圈將其中一個屬性名賦值給變數prop,運行回圈體
利用該特點可以遍歷陣列:
var arr= ['abc','123',1,2,3];
for(var prop in arr){
console.log(prop);
console.log(arr[prop]);
}
使用for回圈遍歷陣列和for-in回圈遍歷陣列的區別:
遍歷稀松陣列var arr = [1,2,3,,,,,4];
for(var i = 0; i < arr.length; i++){};//沒有值的地方會輸出undefined
for(var prop in arr){};//沒有值的地方不會輸出
創建一個長度為5的陣列,給陣列的每一項賦值為'abc',使用for回圈
var arr = new Array(5);
for(var i = 0; i < arr.length; i++){
arr[i] = 'abc';
}
輸出結果展示:

不能使用for-in回圈,原因如下:
var arr = new Array(5); for(var prop in arr){ arr[prop] = 'abc'; } console.log(arr); 輸出結果展示:
in關鍵字是把陣列中每個屬性名取出,但是new Array(5)創建出的陣列只有length為5,沒有對應的索引值即屬性名,
所以不能為陣列賦值,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/116207.html
標籤:JavaScript
上一篇:Webpack 入門教程
下一篇:Vue.js 模板語法簡單匯總
