Javascript教程--In运算符介绍及实例

122 阅读2分钟

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