我正在使用这个 JS 插件,我遇到了一些我以前从未见过的语法。我明白它在做什么,但我不确定它为什么会起作用。
这是它的一个例子:
settings.maxId != null && (params.max_id = settings.maxId);
这只是利用了条件语句和单个 = 吗?这是JS的通用语法吗?
最佳答案
在 JavaScript 中,=
运算符是一个表达式,用于计算分配的值。因为它是一个表达式,所以它可以在任何允许表达式的地方使用,即使它会导致副作用。
因此:
settings.maxId != null && (params.max_id = settings.maxId)
意思是:如果 settings.maxId
不为 null,则(并且只有那时,因为 &&
是 short circuiting )评估正确的-表达式 (params.max_id = settings.maxId
) 进而导致将 settings.maxId
的值分配给 params.max_id
。
这是更清楚写成:
if (settings.maxId != null) {
params.max_id = settings.maxId
}
快乐编码。
关于javascript - 这是什么 JS 语法?表达式赋值? (x != null && (y = x)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9726496/