文章詳情頁(yè)
javascript - 為什么!function foo(){}返回false,!function foo(){}()返回true?
瀏覽:87日期:2023-04-21 13:50:28
問(wèn)題描述
如題,謝謝!
問(wèn)題解答
回答1:js 中被判為 false 的只有以下幾個(gè):
0
NaN
false
’’
null
undefined
因此:
!function foo () {} == !(function foo () {}) == false
!function foo(){}() == !(function foo () { return undefined })() == !undefined == true回答2:
我覺(jué)得你的問(wèn)題可以改成!(function foo(){})返回false,!(function foo(){})()返回true?因?yàn)榇afunction foo(){}()執(zhí)行會(huì)返回Uncaught SyntaxError: Unexpected token的錯(cuò)誤。
前者是對(duì)非空字符串取反,非空字符串的布爾值是true,取反之后自然是false;后者是自執(zhí)行函數(shù)的返回值取反,返回值是undefined,轉(zhuǎn)化為布爾值是false,取反是true。
以上為個(gè)人見(jiàn)解,歡迎討論。Thanks!
標(biāo)簽:
JavaScript
排行榜

熱門(mén)標(biāo)簽