JavaScript には癖がたくさんあり、ホイスティングは初心者が混乱しやすいものの 1 つです。しかし、この投稿を読み終える頃には、ホイスティングを簡単に理解できるようになりますので、ご心配なく!
ホイスティングとは何ですか? ?
本質的に、ホイスティングは宣言をスコープの先頭に移動する JavaScript のデフォルトの動作です。これはコードが物理的に再配置されるという意味ではなく、JavaScript エンジンがコードをどのように解釈するかというだけです。
次のように考えてください。 JavaScript はコードの実行を開始する前に、コードの 1 行が実行される前であっても、すべての変数と関数にメモリを事前に割り当てて「準備」します。
ホイスティングに関する一般的な通説
変数のみがホイストされます。
?? 真実ではありません
関数宣言と変数宣言の両方がホイストされます。
ホイストされた変数は自動的に初期化されます。
?? また間違えました
変数はホイストされますが、初期化されません。それらの値は、明示的に割り当てられるまで未定義のままです。
例を挙げてホイスティングを理解する?
1.変数ホイスティング
var:
を使用して宣言された変数から始めましょう。
console.log(greeting); // Output: undefined var greeting = "Hello, World!";
ここで何が起こるのでしょうか? JavaScript は実行中にコードを次のように処理します:
var greeting; // Declaration is hoisted console.log(greeting); // Accesses the variable before initialization greeting = "Hello, World!"; // Initialization happens here
しかし、let と const の場合は別の話になります。
console.log(name); // ReferenceError: Cannot access 'name' before initialization let name = "Sudhil";
let または const で宣言された変数はホイストされますが、宣言が検出されるまでは「時間的デッド ゾーン」 (TDZ) にあります。
2.関数ホイスティング
関数宣言は完全にホイストされており、名前と本体の両方が宣言行の前で利用可能です:
sayHello(); // Output: "Hello!" function sayHello() { console.log("Hello!"); }
ただし、関数式の動作は異なります。
sayHi(); // TypeError: sayHi is not a function var sayHi = function () { console.log("Hi!"); };
この場合、変数sayHiはホイストされますが、割り当てに達するまで初期化されません。
3.クラスホイスティング
クラスは let や const と同様に動作します。これらは吊り上げられますが、宣言前にアクセスすることはできません。
const instance = new MyClass(); // ReferenceError: Cannot access 'MyClass' before initialization class MyClass { constructor() { this.name = "Classy!"; } }
なぜ吊り上げが重要なのでしょうか? ?
1.行動を予測する
ホイスティングを理解すると、コードがどのように実行されるかを予測し、初期化前の変数の使用などのよくある落とし穴を回避するのに役立ちます。
2.クリーンなコード
混乱を避けるために、変数と関数はスコープの先頭で宣言してください。これは JavaScript のホイスティング動作と一致しており、コードが読みやすくなります。
まとめ?
吊り上げについて覚えておくべきことは次のとおりです: ?
- 宣言 (変数、関数、クラス) はホイストされます。初期化は行われません。
- var 宣言は未定義でホイストされます。 let と const は 時間的デッドゾーン に留まります。
- 関数宣言は完全にホイストされますが、関数式は完全にホイストされません。
- ホイスティングは JavaScript エンジンがコードを理解するのに役立ちますが、ホイスティングを理解することはより良いコードを書くのに役立ちます。
読んでいただきありがとうございます! ?
JavaScript の癖を試し続けて、このシリーズのさらなる続報にご期待ください。?
コーディングを楽しんでください! ???✨
以上がJavaScriptのホイスティングの謎!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

楽なWebページレイアウトのためにjQueryを活用する:8本質的なプラグイン jQueryは、Webページのレイアウトを大幅に簡素化します。 この記事では、プロセスを合理化する8つの強力なjQueryプラグイン、特に手動のウェブサイトの作成に役立ちます

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

10の楽しいjQueryゲームプラグインして、あなたのウェブサイトをより魅力的にし、ユーザーの粘着性を高めます! Flashは依然としてカジュアルなWebゲームを開発するのに最適なソフトウェアですが、jQueryは驚くべき効果を生み出すこともできます。また、純粋なアクションフラッシュゲームに匹敵するものではありませんが、場合によってはブラウザで予期せぬ楽しみもできます。 jquery tic toeゲーム ゲームプログラミングの「Hello World」には、JQueryバージョンがあります。 ソースコード jQueryクレイジーワードコンポジションゲーム これは空白のゲームであり、単語の文脈を知らないために奇妙な結果を生み出すことができます。 ソースコード jquery鉱山の掃引ゲーム

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

このチュートリアルでは、jQueryを使用して魅惑的な視差の背景効果を作成する方法を示しています。 見事な視覚的な深さを作成するレイヤー画像を備えたヘッダーバナーを構築します。 更新されたプラグインは、jQuery 1.6.4以降で動作します。 ダウンロードしてください

このJavaScriptライブラリは、Cookieに依存せずにセッションデータを管理するためにWindow.nameプロパティを活用します。 ブラウザ全体でセッション変数を保存および取得するための堅牢なソリューションを提供します。 ライブラリは、セッションの3つのコア方法を提供します

このチュートリアルでは、Ajaxを介してロードされた動的なページボックスの作成を示しており、フルページのリロードなしでインスタントリフレッシュを可能にします。 JQueryとJavaScriptを活用します。カスタムのFacebookスタイルのコンテンツボックスローダーと考えてください。 重要な概念: ajaxとjquery


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

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

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

ホットトピック









