我试图找到练习的名称(在任何语言中),在对其执行查找之前检查对象是否存在。通常这是通过在对象和对象查找表达式之间引入&&
来完成的,就像在JS中一样:
var example = objectName && objectName.thing;
使得example
被评估为undefined
或objectName.thing
,并避免运行时错误。
答案 0 :(得分:1)
这有时被称为"警卫,"因为左操作数 guards 的真实性访问了右操作数。当然,它只是一个逻辑AND,但在这个特定的上下文中使用AND有时被称为" guard"。
来自Douglas Crockford的A Survey of the JavaScript Programming Language:
&&
运算符通常称为 logical和。它也可以被称为 guard 。
来自Sean McArthur的Guard and Default Operators of JavaScript:
在Javascript中,语言确定逻辑操作的方式以及Javascript视为真或假的值导致人们使用AND和OR运算符来 guard 和默认情境
答案 1 :(得分:0)
这种做法有时称为验证或评估。您可以使用三元运算符来执行此操作。
var example = objectName ? objectName.thing : null
这会将objectName.thing
或null
分配给example
,具体取决于 objectExample