天天看點

js in操作符

in 操作符:(?in ?)第一個參數是字元串或可轉換其他類型,2參數是操作對象或數組,第一操作數的值是第二操作數 的屬性名。

例子

<!-- <script type="text/javascript">

function FF() {

this.age = 11;

}

FF.prototype.name = "kevin";

// in用來判斷該屬性是否存在在該對象中

var flag1 = "age" in new FF()?"存在":"不存在";

var flag2 = "name" in new FF()?"存在":"不存在";

alert(flag1)

alert(flag2)

</script> -->

<script type="text/javascript">

var key=new Array('java','javascrit','html')

var str='java';

if( 1 in key){

alert('這個存在這個數組裡面')

}else(

alert('不在裡面')

)

</script>

使用方法:

1.判斷

x in arr 這裡要注意的是判斷數組的話 x表示的是下标,這個意識就是arr數組中有下标為x的元素嗎

x in obj 現在的x表示的是對象的屬性,這個意思是obj中有沒有x這個屬性

示例代碼:

  1. var arr = [1,4,6,'a'];

  2. console.log('a' in arr);

  3. console.log(4 in arr);

  4. console.log(3 in arr);

這個輸出的結果是:false false true;

解釋:第一個false,因為下标不可能是a;第二個false,因為arr這個數組的長度是4,下标是0,1,2,3沒有下标4;第三個true,原因和第二個一樣

示例代碼:

  1. var obj = {a:3,b:'b',c:'4'}

  2. console.log('a' in obj)

  3. console.log('b' in obj)

  4. console.log('4' in obj)

輸出結果是:true,true,false

解釋:第一個true,因為在obj中有屬性a;第二個true,因為obj中有屬性b,而不是因為值為b,這也是為什麼第三個是false的原因

2. ...in...周遊數組或者對象

周遊數組代碼:

  1. var arr = [1,2,3,4,5,6,7]

  2. for(var x in arr){

  3. console.log(arr[x])

  4. }

輸出結果是:1 2 3 4 5 6 7

周遊對象代碼:

  1. var obj = {a:1,b:'c',d:3}

  2. for(var x in obj){

  3. console.log(obj[x])

  4. }

輸出結果是:1 c 3