in 运算符也是一个二元运算符,但是对运算符左右两个操作数的要求比较严格。in 运算符要求第 1 个(左边的)操作数必须是字符串类型或可以转换为字符串类型的其他类型,而第 2 个(右边的)操作数必须是数组或对象。只有第 1 个操作数的值是第 2 个操作数的属性名,才会返回 true,否则返回 false。数组中,左边的操作数可以保持和数组中的数据类型一致。
案例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<link rel="stylesheet" href="" rel="external nofollow" >
</head>
<body> </body>
</html>
<script>
var json = {name : 'Tom',age : 20, gender : 'Male'}
var arr = [1,2,3,4,5,6];
for(var j in json) {
console.log(j);//name,age,gender,属性
}
for(var j in json) {
console.log(json[j]);//Tom,20,?Male,值
}
for(var k in arr) {
console.log(k);//0,1,2,3,4,5,索引号
}
for(var k in arr) {
console.log(arr[k]);//1,2,3,4,5,6,值
}
</script>
案例
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
<script>
var arr = [1,2,3,'a','b','c',{name: 'Tom'}];
var json = {name:'Tom',age:'20',gender : 'male'}
if(1 in arr) {console.log(123)}
if('1' in arr) {console.log(456)}
if('name' in json) {console.log(789)}
</script>