编程语言的运算符评估顺序的技术术语是什么?

What is the technical term for a programming language's operator evaluation order?

JavaScript 中的数组解构或 Python 中的集合操作等几个过程促使我评估一个对象的 属性 或方法以在继续之前检查它是否存在,通常导致以下模式:

var value = collection.length

if value != null {
    if value == targetValue {
      /* do something */
    }
}

为了制作 "cleaner" 代码,我想做类似的事情:

if value != null && value == targetValue {
      /* do something */
    }

或使用三元运算符:

var value = collection.length != null ? collection.length : 0

但是,我不确定编译器是否会在解决与 null 的第一次比较后立即停止评估,或者它是否会继续进行并产生错误。我当然可以做一些小的单元测试来找出答案,但我更愿意知道在任何语言的文档中查找正确的术语。这个词是什么,或者它在所有语言中都一样吗?

这被称为Short Circuit Evaluation 。它在语言之间非常一致。

在大多数语言中,&& 仅在第一个参数为真时才计算第二个参数,而 || 仅在第一个参数为假时才计算第二个参数。