javascript - !function foo(){} が false を返し、!function foo(){}() が true を返すのはなぜですか?
女神的闺蜜爱上我
女神的闺蜜爱上我 2017-06-30 09:58:06
0
2
804

前述のとおり、ありがとうございます!

女神的闺蜜爱上我
女神的闺蜜爱上我

全員に返信(2)
淡淡烟草味

js で false と判断されるのは次のとおりです:

  • 0

  • ナン

  • ヌル

  • 未定義

したがって:

リーリー リーリー
いいねを押す +0
小葫芦

あなたの質問は、!(function foo(){}) returns false、!(function foo(){})() returns true?に変更できると思います。
コード関数 foo(){}() は Uncaught を返すためです。実行時 SyntaxError: 予期しないトークン エラー。

前者は空でない文字列を否定するもので、空でない文字列のブール値は否定後は当然 false になります。
後者は自己実行関数の戻り値を否定します。値が未定義であり、ブール値に変換された場合は false、その否定は true です。

上記は個人的な意見ですので、議論を歓迎します。ありがとう!

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート