Der*_*rek 5 javascript syntax conditional
我正在使用这个JS插件,我遇到了一些我以前从未见过的语法.我理解它在做什么,但我不确定它为什么会起作用.
以下是其中一个实例的示例:
settings.maxId != null && (params.max_id = settings.maxId);
Run Code Online (Sandbox Code Playgroud)
这只是利用条件和单=?这是JS的常用语法吗?
小智 15
在JavaScript中,=运算符是表达式并评估指定的值.因为它是一个表达式,所以即使它引起副作用,也可以在允许表达的任何地方使用它.从而:
settings.maxId != null && (params.max_id = settings.maxId)
Run Code Online (Sandbox Code Playgroud)
意味着:如果settings.maxId不为null那么(并且只有那时,因为&&是短路)评估right-expression(params.max_id = settings.maxId),这反过来导致settings.maxId赋值的值params.max_id.这更明确地写为:
if (settings.maxId != null) {
params.max_id = settings.maxId
}
Run Code Online (Sandbox Code Playgroud)
快乐的编码.