我试图找到一种做法的名称(以任何语言),在该做法中,在对对象执行查找之前先检查对象是否存在。通常,这是通过在对象和对象查找表达式之间插入&&
来完成的,就像在JS中那样:
var example = objectName && objectName.thing;
这样,将
example
评估为undefined
或objectName.thing
,并避免了运行时错误。我本可以发誓我以前听过,但是我完全忘记了。这种做法叫什么?
最佳答案
有时将其称为“防护”,因为左操作数的真实性可防止访问右操作数。当然,这只是一个逻辑“与”,但是在这种特定情况下使用“与”有时会被称为“警卫”。
来自道格拉斯·克罗克福德(Douglas Crockford)的A Survey of the JavaScript Programming Language:
&&
运算符通常称为逻辑与。也可以称为守卫。
肖恩·麦克阿瑟(Sean McArthur)的Guard and Default Operators of JavaScript:
在Java语言中,语言确定逻辑运算和值的方式是Java视为真或假,这导致人们使用AND和OR运算符处理警戒和默认情况