Javascript速记语法解释

Javascript速记语法解释,javascript,Javascript,我在我的项目中使用了这种语法。我能得到这个代码的解释吗 // Handles focus on error title. var error = $('#consentError')[0]; error && error.focus(); 这是if()条件的简写语法。是的,代码相当于 var error = $('#consentError')[0]; if (error) { error.focus(); } if版本绝对更易于阅读和理解,一目了然。使用&&方法创

我在我的项目中使用了这种语法。我能得到这个代码的解释吗

 // Handles focus on error title.
 var error = $('#consentError')[0];
 error && error.focus();

这是if()条件的简写语法。

是的,代码相当于

var error = $('#consentError')[0];
if (error) {
  error.focus();
}
if
版本绝对更易于阅读和理解,一目了然。使用
&&
方法创建一个未使用的表达式,这很奇怪,而且是由linters创建的

但是jQuery有一个更好的方法来实现这一点——只要在jQuery集合上调用
focus
,它就会在本机元素上调用
.focus()
,如果有这样的元素(如果没有,它就什么也做不了——它不会抛出)


是的,代码相当于

var error = $('#consentError')[0];
if (error) {
  error.focus();
}
if
版本绝对更易于阅读和理解,一目了然。使用
&&
方法创建一个未使用的表达式,这很奇怪,而且是由linters创建的

但是jQuery有一个更好的方法来实现这一点——只要在jQuery集合上调用
focus
,它就会在本机元素上调用
.focus()
,如果有这样的元素(如果没有,它就什么也做不了——它不会抛出)


基本上,只有当第一个为真时,才计算第二个。在本例中,只有当error$(“#approvererror”)是Jquery选择器时,才会执行error.focus()。它选择id为“ApproverError”的元素。不过我认为不需要索引器。此节点被传递给错误变量。然后检查错误是否有值且不为null,然后聚焦该节点。仅当第一个值为true时,才计算第二个值。在本例中,只有当error$(“#approvererror”)是Jquery选择器时,才会执行error.focus()。它选择id为“ApproverError”的元素。不过我认为不需要索引器。此节点被传递给错误变量。然后检查error是否有值且不为null,然后聚焦该节点。在这种情况下,变量
error
不应返回数组jQuery不返回数组,它返回jQuery对象。但是,即使多个元素与选择器匹配,它仍然会对第一个匹配的元素(如果有这样的元素)调用
focus()
。在这种情况下,变量
error
不应返回数组jQuery不返回数组,它返回jQuery对象。但是,即使有多个元素与选择器匹配,它仍然会对第一个匹配的元素(如果有这样的元素)调用
focus()。