等同于JavaScript isset()

在PHP中可以做到if(isset($array['foo'])) { ... }。在JavaScript中,您通常会使用if(array.foo)

{ ...

}相同的方法,但这并不完全相同。如果array.foo确实存在,但条件是false0(或可能还有其他值),则条件也将评估为false 。

issetJavaScript 中PHP的完美替代品是什么?

从更广泛的意义上讲,有关JavaScript处理不存在的变量,没有值的变量等的通用完整指南会很方便。

回答:

我通常使用typeof运算符:

if (typeof obj.foo !== 'undefined') {

// your code here

}

"undefined"如果该属性不存在或其值是,它将返回undefined

if (obj.hasOwnProperty('foo')) {

// your code here

}

in运算符:

if ('foo' in obj) {

// your code here

}

后两者之间的区别在于,该hasOwnProperty方法将检查属性是否 物理 存在于对象上(该属性未继承)。

in运营商将检查所有属性在原型链,如到达了:

var obj = { foo: 'bar'};

obj.hasOwnProperty('foo'); // true

obj.hasOwnProperty('toString'); // false

'toString' in obj; // true

如您所见,在检查方法时会hasOwnProperty返回false,而in操作员会返回,该方法在原型链中定义,因为它继承了form。true``toString``obj``Object.prototype

以上是 等同于JavaScript isset() 的全部内容, 来源链接: utcz.com/qa/399100.html

回到顶部