In运算符是javascript语言中提供的内置运算符,这包括In运算符在以下情况下的用法
Javascript中的In操作符
in operator 在javascript中用于查找对象中的属性。
语法
name in objects
语法包含两个操作数
左边的操作数是一个属性字符串名称或数组索引。右边的操作数是一个要检查的对象
该操作符在以下情况下返回真
- 如果左边的操作数或名称是一个对象的属性。
- 如果数组索引存在于一个对象的数组中
在以下情况下返回false
- 不是一个对象的有效属性
- 不是一个给定的右手数组对象的有效数组索引
使用in运算符检查有效的索引是否存在于一个数组中
In操作符检查有效的索引是否存在于一个给定的数组中 请注意,这个操作符只检查索引而不是它的值
在下面的例子中,创建了一个有三个元素的数组,所以有效的索引是0,1,2
如果索引=0,1,2,操作者返回true,如果索引>=3,则返回false。
let array = [43,1, 21]
console.log(0 in array)// true
console.log(1 in array)// true
console.log(2 in array)// true
console.log(3 in array)// false
这对检查数组的无效索引验证非常有用,可以避免未定义值。
在Javascript中检查一个对象的属性
在操作符中检查一个对象中存在的属性,它不检查属性值。
让我们看看一个简单的对象属性检查例子
const emp = {id: '1', name: 'Franc'};
console.log('id' in emp); //true
console.log('name' in emp); //true
console.log('Franc' in emp); //false
下面是一个更多的类扩展检查属性检查的例子
声明动物的名字属性 声明狮子的腿属性 通过扩展动物创建狮子的对象,狮子对象上的名字和腿返回真属性值动物返回假。
class Animal {
constructor() {
this.name = "animal"
}
}
class Lion extends Animal {
constructor() {
super()
this.legs = "2"
}
}
const lion = new Lion()
console.log('name' in lion) //true
console.log('legs' in lion) //true
console.log('animal' in lion) //false
在操作者枚举用法中
让我们声明一个枚举。
export enum HttpResponseStatus {
SUCCESS = 200,
NOTFOUND=404,
SERVERERROR = 500
}
在枚举数据类型中使用的运算符,用于以下使用情况
检查字符串是否存在于Enum类型的脚本或Javascript中。
在下面的例子中,该操作符用于检查Enum数据中的字符串和值。如果Enum类型脚本中没有属性或其值存在,则返回false。
console.log(200 in HttpResponseStatus); // true
console.log('SUCCESS' in HttpResponseStatus); // true
console.log('600' in HttpResponseStatus);// false
迭代枚举数据
当在for循环中使用时,这些操作符也可以用来迭代枚举属性。下面的例子只打印了字符串属性,没有打印其值
for (let element in HttpResponseStatus) {
if (isNaN(Number(element))) {
console.log(element);
}
}
输出结果是
SUCCESS
NOTFOUND
SERVERERROR