我正在使用此JS插件,并且遇到了一些以前从未见过的语法。我了解它在做什么,但是我不确定它为什么起作用。
这是一个实例的示例:
settings.maxId != null && (params.max_id = settings.maxId);
这只是利用条件和单= =的优势吗?这是JS的通用语法吗?
在JavaScript中,=
运算符是一个表达式,用于评估分配的值。因为它是一个表达式,所以即使在产生副作用的情况下也可以在允许该表达式的任何地方使用。因此:
settings.maxId != null && (params.max_id = settings.maxId)
装置:如果settings.maxId
不为空,然后(且仅然后,由于&&
是短路)评估右表达式(params.max_id = settings.maxId
)这又导致的值settings.maxId
被分配到params.max_id
。这更清楚地写为:
if (settings.maxId != null) {
params.max_id = settings.maxId
}
快乐的编码。