我的问题如下:首先,我想检查某个对象是否存在,然后我想在它上面调用一个函数。例子:
if(obj_exists(my_object) && my_object.is_green()){...
如果 my_object 未定义,第二次调用显然会使程序崩溃。问题:“&&”是否保证按照代码中指定的顺序执行?如果第一个子句已经为假,“&&”是否保证停止?在所有浏览器/机器上?这是否也适用于 || (如果第一个子句已经为真,则停止执行)?
是否建议使用:
if(obj_exists(my_object) ? my_object.is_green() : false){...
因为这将明确指定顺序。这个版本比上面的代码示例慢吗?
编程语言 Eiffel 有一个“然后”运算符可以优雅地解决这个问题。我不期望 Javascript 优雅,只是一个可行的解决方案:)