2017-10-10 141 views
1

爲什麼空字符串和假布爾值之間的邏輯與比較返回空字符串?爲什麼字符串和假布爾值之間的邏輯AND比較返回false?爲什麼JavaScript爲「邏輯與」操作返回空字符串?

例子:

'' && true; --> returns '' 
'string' && true --> returns true; 
'' && false --> returns '' 
'string' && false --> returns false; 

問題是,爲什麼要使用JavaScript行爲這種方式?

+4

它返回離開表達式的第一個決定值。 –

+1

你也可以用'0'和'NaN'獲得相同的結果。這是JavaScript中的一個「虛假」值。所以你的邏輯AND返回與'false'相同的值(因爲'true && false'是'false')。 https://developer.mozilla.org/en-US/docs/Glossary/Falsy – Walk

回答

0

&&運算符的工作原理非常簡單:如果第一個值是虛假的,則返回第一個值,否則返回第二個值。

空字符串''是虛假的,所以'' && x對於所有的x都返回''。另一方面,'string'是truthy,所以'string' && x對於所有x返回x

相關問題