javascript - 这是什么 JS 语法?表达式赋值? (x != null && (y = x))

标签 javascript syntax conditional

我正在使用这个 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/

相关文章:

sql-server - 使用 T-SQL 高效删除记录而不使用 IN 子句

syntax - clojure 的 ->(箭头)运算符和可选操作

javascript - 我们可以使用相同的按钮来隐藏/显示多个 div

javascript - 如何使用android phonegap上传文件?

c# - 无法将 MyType<T> 转换为 MyType<object>

clojure - 在重复时停止和拆分生成的序列 - clojure

mobile - 如何有条件地加载内容(移动优先)

javascript - 在 Angular 中使用 Observable 时如何将函数附加到观察者?

javascript - Highcharts 标 checkout 现两次