jsの関数の前に!を追加する際の問題、コードが添付されています

亚连
リリース: 2018-05-18 10:18:22
オリジナル
1330 人が閲覧しました

以下は、js の関数の前に ! を追加することに関する質問をまとめたものです。興味のある方はご覧ください。

関数を宣言するには2つの方法があることは誰もが知っています

function fnA(){alert('msg');}//声明式定义函数
var fnB = function(){alert('msg');}//函数赋值表达式定义函数12
ログイン後にコピー

関数を呼び出す方法は通常FunctionName()です

しかし、「関数の定義」の最後に()を追加しようとすると、パーサーが理解不能です。

function msg(){
  alert('message');
}();//解析器是无法理解的123
ログイン後にコピー

関数定義の呼び出しメソッドは msg(); であるはずなのに、なぜ関数本体を () で囲んでも大丈夫なのでしょうか?

括弧を使用して関数本体を囲むと、パーサーは定義された関数を関数式の形式で呼び出すことがわかります。つまり、関数を関数式に変換できるメソッドであれば、パーサーが定義された関数を正しく呼び出すことができます。 ! もその 1 つであり、+ - || ~ はすべてそのような機能を持っています。

さらに、! の使用は、演算子によってパフォーマンスが異なる場合があります。

// 这么写会报错,因为这是一个函数定义:
function() {}()
// 常见的(多了一对括号),调用匿名函数:
(function() {})()
// 但在前面加上一个布尔运算符(只多了一个感叹号),就是表达式了,将执行后面的代码,也就合法实现调用
!function() {}()
ログイン後にコピー

上記は、js の関数の前に ! を追加する問題についてまとめたものです。今後のお役に立てれば幸いです。

関連記事:

JSとアプリのやりとりを詳しく解説(コード付き)

Jsのapply()の使い方を詳しく解説(コード付き)

シンプルでわかりやすい、 JavaScript独学学習ノート

以上がjsの関数の前に!を追加する際の問題、コードが添付されていますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!