簡體   English   中英

為什么JavaScript為“邏輯AND”運算返回空字符串?

[英]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值包括你的空字符串( '' ), nullNaNundefined ,等等。你可以閱讀更多關於它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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM