我在项目中使用了这种语法。我能得到这个代码的解释吗?
// 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()
,如果有这样的元素(如果没有,它什么都不会做——它不会抛出(。
$('#consentError').focus();