JS中的in运算符
1,数组和对象的 for in 方法
接触过JS数组和对象后,我们都知道有一个for in
方法,它可以遍历数组和对象的key
(数组元素的key
就是下标)
let arr = [1,2,3]
let obj = {name:'野原新之助',age:6,gender:'boy'}
for(let k in arr){
console.log(k) // 输出 0 1 2,访问的是数组元素下标
}
for(let k in obj){
console.log(k) // 输出 name age gender,访问的是对象属性名
}
for in
中的in
可以理解为:
- 数组:存在于数组中的下标(
key
)- 对象:存在于对象中的属性(
key
)
2,in 运算符的单独使用
in
运算符单独使用时,就是用于判断属性是否存在于对象中- 如果存在,即返回
true
,不存在,返回false
- 判断对象中是否存在某属性时,对象的原型中存在的属性(方法)也会被算进去
- 在数组中,元素的索引下标,就是元素的属性
let obj = {
name:'小蛤蟆',
age:6
}
console.log('name' in obj) //true,obj存在name属性
console.log('gender' in obj) //false,obj不存在gender属性
console.log('toString' in obj) //true,obj的原型中存在toString属性
let arr = [0,1,2]
console.log(0 in arr) //true,arr数组的索引项有0
console.log(3 in arr) //false,arr数组的索引没有到3