for的語法結(jié)構(gòu):
for( 初始值;判斷條件;步長值){ code }
for( var i =0;i<5;i++ ){
//i初始值為0竭钝;i是否小寫5垫言;每次循環(huán)后i加1
console.log(i);// 0 1 2 3 4
}
for in的寫法:
var man = {
age:24,
name:"趙宇",
sex:"男"
}
console.log(man);
//結(jié)果:Object
{age: 24
name: "趙宇"
sex: "男"
__proto__: Object}
for(var attr in man){//attr是屬性悯衬,attr可以換成任意變量名
console.log(attr);// 輸出的是 屬性名:age name sex
console.log(wq[attr]);//屬性相對應(yīng)的值 24 趙宇 男
}
for循環(huán)就是我們常用的方法用來遍歷肾扰。for in一般是用來遍歷對象的,for 循環(huán)可以遍歷一個數(shù)組脆荷,而for in遍歷對象凝垛,對象有多個屬性,各個屬性又有各自 的值蜓谋。在上面的案例里面梦皮,想要獲取對象的屬性相應(yīng)的值for是遍歷不了的,這個時候for in就出場了桃焕。
上面的案例中剑肯,對象wq里有三個屬性和相對應(yīng)的值,想要獲取到這三個屬性及相對應(yīng)的值for是辦不到的观堂,只有for in才可以让网,所以說,for in一般都是用在遍歷對象的师痕,另外溃睹,for in也可以遍歷數(shù)組,但是會存在以下幾個問題胰坟。
1因篇、 for in這種循環(huán)i是string類型的,不能直接進行幾何運算
2笔横、遍歷順序有可能不是按照實際數(shù)組的內(nèi)部順序
3竞滓、使用for in會遍歷數(shù)組所有的屬性,包括原型狠裹。例如上例的原型方法method和name屬性
4虽界、簡而言之汽烦,for-in是為普通對象設(shè)計的涛菠,你可以遍歷得到字符串類型的鍵,因此不適用于數(shù)組遍歷撇吞。
所以說for in也有他的局限性俗冻,因此遍歷一般的數(shù)組用for比較好,遍歷對象就需要for in了