我在javascript中有以下代码行:
q && (c = q === "0" ? "" : q.trim());
这是什么意思?我知道这c
等于空字符串或 q.trim() 结果,但这是什么意思q && ()
?
我在javascript中有以下代码行:
q && (c = q === "0" ? "" : q.trim());
这是什么意思?我知道这c
等于空字符串或 q.trim() 结果,但这是什么意思q && ()
?
JavaScript 优化布尔表达式。当q
isfalse
时,表达式的右侧与结果无关,因此根本不执行。所以这是一个简短的形式:
if( q ) {
c = q === "0" ? "" : q.trim()
}
它是对未定义/空/假变量的防范。
如果q
未定义false
或设置为null
,则代码短路并且您不会收到抱怨的错误null.trim()
另一种写法是:
if(q) {
c = q === "0" ? "" : q.trim();
}
您可以使用这种子句来检查 q 是否已定义。