以下は、js の関数の前に ! を追加することに関する質問をまとめたものです。興味のある方はご覧ください。
関数を宣言するには2つの方法があることは誰もが知っています
function fnA(){alert('msg');}//声明式定义函数 var fnB = function(){alert('msg');}//函数赋值表达式定义函数12
関数を呼び出す方法は通常FunctionName()です
しかし、「関数の定義」の最後に()を追加しようとすると、パーサーが理解不能です。
function msg(){ alert('message'); }();//解析器是无法理解的123
関数定義の呼び出しメソッドは msg(); であるはずなのに、なぜ関数本体を () で囲んでも大丈夫なのでしょうか?
括弧を使用して関数本体を囲むと、パーサーは定義された関数を関数式の形式で呼び出すことがわかります。つまり、関数を関数式に変換できるメソッドであれば、パーサーが定義された関数を正しく呼び出すことができます。 ! もその 1 つであり、+ - || ~ はすべてそのような機能を持っています。
さらに、! の使用は、演算子によってパフォーマンスが異なる場合があります。
// 这么写会报错,因为这是一个函数定义: function() {}() // 常见的(多了一对括号),调用匿名函数: (function() {})() // 但在前面加上一个布尔运算符(只多了一个感叹号),就是表达式了,将执行后面的代码,也就合法实现调用 !function() {}()
上記は、js の関数の前に ! を追加する問題についてまとめたものです。今後のお役に立てれば幸いです。
関連記事:
シンプルでわかりやすい、 JavaScript独学学習ノート
以上がjsの関数の前に!を追加する際の問題、コードが添付されていますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。