Javascript 当属性被访问但不存在时抛出错误';不存在于对象中

Javascript 当属性被访问但不存在时抛出错误';不存在于对象中,javascript,Javascript,在Python中,当我尝试访问字典中不存在的键时,会抛出一个错误: >>> d = {'foo': 'bar'} >>> d['baz'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'baz' >>> >d={'foo':'bar'} >>>d['baz'] 回溯(最近一次呼叫最后一次): 文件

在Python中,当我尝试访问字典中不存在的键时,会抛出一个错误:

>>> d = {'foo': 'bar'}
>>> d['baz']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'baz'
>>>
>d={'foo':'bar'}
>>>d['baz']
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
KeyError:'baz'
>>>

在Javascript中有没有类似的方法来实现这种行为?不希望使用第三方库。

这并不是您想要的,但有节点模块。 那就是使用ES6代理

const-zealit=require('zealit'))
常量ref={foo:true,bar:undefined}
ref.foo//true
参考条//未定义
参考文献baz//未定义
const-zealid=zealit(参考)
热心的。foo//true
zealed.bar//未定义
zealed.baz//抛出引用错误

您可以将其包装在函数中:

function get(object, key) {
  if (!object.hasOwnProperty(key)) {
    throw new Error(`No key ${key}`)
  }
  return object[key]
}

const d = { foo: 'bar' }
const foo = get(d, 'foo') // ok
const error = get(d, 'bar') // throws

如果您想检查整个原型链,建议的库解决方案可能更好。

进行显式检查。我希望避免显式检查。在我的应用程序中,我必须访问这个对象数百次,因此最好使用自动抛出错误的方法。您可以创建一个函数来为您执行此操作。像
函数getProp(obj,prop)
一样,如果属性不存在,它会抛出一个错误。然后,只要在需要访问某些内容时使用
getProp()
。如果不关心兼容性,可以使用ES6代理对象,并编写在属性不存在时引发异常的代理