Warm tip: This article is reproduced from serverfault.com, please click

javascript-这是什么JS语法?

(javascript - What is this JS syntax? Assignment in expression? (x != null && (y = x)))

发布于 2012-03-15 19:10:52

我正在使用此JS插件,并且遇到了一些以前从未见过的语法。我了解它在做什么,但是我不确定它为什么起作用。

这是一个实例的示例:

settings.maxId != null && (params.max_id = settings.maxId);

这只是利用条件和单= =的优势吗?这是JS的通用语法吗?

Questioner
Derek
Viewed
0
25.4k 2018-07-08 10:36:18

在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
}

快乐的编码。