[英]Why JavaScript returns empty string for “logical AND” operation?
為什么在空字符串和假布爾值之間進行邏輯AND比較會返回一個空字符串? 以及為什么字符串和false布爾值之間的邏輯與比較返回false?
例:
'' && true; --> returns ''
'string' && true --> returns true;
'' && false --> returns ''
'string' && false --> returns false;
問題是為什么javascript會表現這種方式?
JavaScript AND( expr1 && expr2
)運算符的工作原理是根據邏輯返回表達式:
if expr1 is falsy
return expr1
else
return expr2
Falsy值包括你的空字符串( ''
), null
, NaN
, undefined
,等等。你可以閱讀更多關於它https://developer.mozilla.org/en-US/docs/Glossary/Falsy 。
有關布爾運算符的更多信息,請訪問https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators 。
&&
運算符的工作非常簡單:如果第一個值是偽造的,則返回第一個值,否則返回第二個值。
空字符串''
是虛假的,因此'' && x
對於所有x
返回''
。 另一方面, 'string'
是真實的,因此'string' && x
x
對於所有x
返回x
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.