var の副作用
暗黙的なグローバル変数と明示的に定義されたグローバル変数の間には小さな違いがあり、それは、delete 演算子を使用して変数を未定義のままにする機能です。
var を通じて作成されたグローバル変数 (関数の外のプログラムで作成されたもの) は削除できません。
var なしで作成された暗黙的なグローバル変数 (関数内で作成されたかどうかに関係なく) は削除できます。
これは、技術的には、暗黙的なグローバル変数は実際にはグローバル変数ではなく、グローバル オブジェクトのプロパティであることを示しています。プロパティは delete 演算子で削除できますが、変数は削除できません:
// 定义三个全局变量 var global_var = 1; global_novar = 2; // 反面教材 (function () { global_fromfunc = 3; // 反面教材 }()); // 试图删除 delete global_var; // false delete global_novar; // true delete global_fromfunc; // true // 测试该删除 typeof global_var; // "number" typeof global_novar; // "undefined" typeof global_fromfunc; // "undefined"
ES5 厳密モードでは、宣言されていない変数 (前のコード スニペットの 2 つの否定的な教材など) はミスをスローします。
単一の var 形式
関数の先頭で単一の var ステートメントを使用すると、次のような利点があります:
関数に必要なすべてのローカル変数を見つけるための単一の場所を提供します
変数が重複するのを防ぎます。定義済み 以前に使用したロジック エラー
は、宣言されたグローバル変数を覚えておくのに役立ちます。そのため、グローバル変数が少なくなります //zxx: ここで少し混乱しています...
コードが少なくなります (型、値、単一行補完)
単一の var 形式は次のようになります:
function func() { var a = 1, b = 2, sum = a + b, myobject = {}, i, j; // function body... }
1 つの var ステートメントを使用して、カンマで区切って複数の変数を宣言できます。このように変数と値を同時に初期化すると良いでしょう。これにより、論理エラー (初期化されていないが宣言されたすべての変数の初期値が未定義) が防止され、コードの可読性が向上します。コードを確認すると、初期化された値に基づいて、これらの変数の一般的な目的 (オブジェクトとして使用されるか整数として使用されるかなど) を知ることができます。
前のコードの sum = a + b など、宣言時に実際の作業を行うこともできます。別の例として、DOM (ドキュメント オブジェクト モデル) 参照を使用する場合、単一の var を使用して DOM 参照をローカルとして指定できます。次のコードに示すように、変数を使用します。
function updateElement() { var el = document.getElementById("result"), style = el.style; // 使用el和style干点其他什么事... }
vars 変数の準備
JavaScript では、関数内のどこにでも複数の var ステートメントを宣言でき、それらは関数の先頭にある宣言のように表示されます。この動作はホイスティング (一時停止/トップ解析/準備) と呼ばれます。変数を使用し、後から関数内で再宣言すると、ロジック エラーが発生することがあります。 JavaScript の場合、変数が同じスコープ (同じ関数) 内にある限り、var 宣言の前に使用された場合でも、その変数は宣言されているとみなされます。次の例を見てください:
// 反例 myname = "global"; // 全局变量 function func() { alert(myname); // "undefined" var myname = "local"; alert(myname); // "local" } func();
この例では、最初のアラートが「global」でポップアップし、2 番目のアラートが「loacl」でポップアップすると考えるかもしれません。最初のアラートの時点では myname が宣言されていなかったため、この期待は理解できます。この時点では、関数は当然グローバル変数 myname を参照する必要がありますが、これは実際の動作ではありません。最初のアラートは「未定義」としてポップアップ表示されます。これは、myname が (後で宣言されても) 関数のローカル変数として扱われ、すべての変数宣言が関数の先頭まで保留されるためです。したがって、この混乱を避けるには、使用するすべての変数を事前に宣言することが最善です。
上記のコード スニペットは次のように動作します:
myname = "global"; // global variable function func() { var myname; // 等同于 -> var myname = undefined; alert(myname); // "undefined" myname = "local"; alert(myname); // "local"} func();
完全を期すために、実行レベルでもう少し複雑なことについて触れてみましょう。コード処理は 2 つの段階に分かれています。最初の段階は、変数、関数の宣言、および通常の形式でのパラメーターの作成です。これは、コンテキストを解析して入力する段階です。 2 番目のフェーズはコードの実行で、関数式と非修飾識別子 (宣言された変数用) が作成されます。ただし、実際的な目的のために、ECMAScript 標準では定義されておらず、動作を記述するために一般に使用される「ホイスティング」の概念を採用します。
グローバル オブジェクトへのアクセス
ブラウザでは、コード内のどこからでも window プロパティを介してグローバル オブジェクトにアクセスできます (window という名前のローカル変数を宣言するなど、とんでもないことをしない限り)。ただし、他のコンテキストでは、この便利なプロパティは別の名前で呼ばれる場合があります (またはプログラムで使用できない場合もあります)。ハードコードされたウィンドウ識別子を使用せずにグローバル オブジェクトにアクセスする必要がある場合は、任意のレベルの関数スコープで次の操作を行うことができます:
var global = (function () { return this; }());
このメソッドは、で使用されるため、いつでもグローバル オブジェクトを取得できます。関数 関数が呼び出されるとき (new を介して構築されないとき)、これは常にグローバル オブジェクトを指します。実際、このバグは ECMAScript 5 の厳密モードには当てはまらないため、厳密モードでは別の形式を取る必要があります。たとえば、JavaScript ライブラリを開発している場合は、コードをイミディエイト関数でラップし、グローバル スコープからこれへの参照を引数としてイミディエイト関数に渡すことができます。
以上がJavaScriptvar の準備解析と副作用の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonとJavaScriptの将来の傾向には、1。Pythonが科学コンピューティングの分野での位置を統合し、AI、2。JavaScriptはWebテクノロジーの開発を促進します。どちらもそれぞれのフィールドでアプリケーションシナリオを拡大し続け、パフォーマンスをより多くのブレークスルーを行います。

開発環境におけるPythonとJavaScriptの両方の選択が重要です。 1)Pythonの開発環境には、Pycharm、Jupyternotebook、Anacondaが含まれます。これらは、データサイエンスと迅速なプロトタイピングに適しています。 2)JavaScriptの開発環境には、フロントエンドおよびバックエンド開発に適したnode.js、vscode、およびwebpackが含まれます。プロジェクトのニーズに応じて適切なツールを選択すると、開発効率とプロジェクトの成功率が向上する可能性があります。

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

WebStorm Mac版
便利なJavaScript開発ツール

ホットトピック









