什么';s相当于;有“U键”;用javascript?
您将如何用javascript编写此代码?in运算符什么';s相当于;有“U键”;用javascript?,javascript,python,Javascript,Python,您将如何用javascript编写此代码?in运算符 if dictionary.has_key('school'): : 您也可以使用,但有时会产生不希望的结果: if(Object.prototype.hasOwnProperty.call(dictionary, key)) { // ... 与操作员一起: console.log('watch' in dictionary); // always true 或者可能在更多浏览器中受支持: 在边境案件中可能存在问题: 不得使用
if dictionary.has_key('school'):
:
您也可以使用,但有时会产生不希望的结果:
if(Object.prototype.hasOwnProperty.call(dictionary, key)) {
// ...
与操作员一起:
console.log('watch' in dictionary); // always true
或者可能在更多浏览器中受支持:
在边境案件中可能存在问题:
不得使用!=未定义
,因为未定义不是关键字:
但是你可以使用!=空值
,对于空值
、未定义
和缺少的值为空:
if(dictionary.school != undefined) { …
您也可以尝试:
if(dictionary.school != null) { …
hasOwnProperty
方法仅在属性实际位于实例上时才计算为true
,而不是简单地从原型继承而来,就像中的一样
例如,求值('toString'在myObject中)
将是true
,而myObject.hasOwnProperty('toString')
将是false
甚至
if(dictionary.hasOwnProperty('school'))
请注意:
中的操作符在Python中也是这样工作的,许多人发现它比has_key()
方法更可取。@brandizzi,实际上,has_key已弃用,因此应避免使用。它什么时候会产生不希望的结果?@qwertymk:有时您希望它只为您在对象本身上添加的属性返回true
,而不是为原型继承的属性返回。
中的操作符更像Python的hasattr
。
if(typeof(dictionary.school) !== 'undefined') { …
if(dictionary.school != undefined) { …
if(dictionary.school != null) { …
if(dictionary.hasOwnProperty('school'))
if(dictionary.school!=undefined)