変数スコープ
「変数のスコープは、変数が存在するコンテキストを表します。アクセスできる変数と、変数にアクセスする権限があるかどうかを指定します。」
変数のスコープはローカルスコープとグローバルスコープに分かれます。
ローカル変数 (関数レベルのスコープ)
他のオブジェクト指向プログラミング言語 (C、Java など) とは異なり、JavaScript にはブロックレベルのスコープ (中括弧で囲まれた) がありません。 ; の場合、JavaScript には関数レベルのスコープがあります。つまり、関数内で定義された変数は、関数内で、または関数内の関数によってのみアクセスできます (クロージャを除く。これについては数日以内に記事を書きます)。 。
関数レベルのスコープの例:
var name = "Richard" ;
function showName () {
var name = "Jack" // この showName でのみアクセス可能 function
console.log (name); // Jack
}
console.log (name); // リチャード: グローバル変数
にはブロック スコープがありません:
var name = "Richard" ;
// この if ステートメント内のブロックは、名前変数のローカル コンテキストを作成しません
if (name) {
name = "Jack"; // この名前はグローバル名変数であり、ここでは「Jack」に変更されています
console.log (name); // Jack: 依然としてグローバル変数
}
// ここで、name 変数は同じグローバル名変数です。ただし、if ステートメントで変更されました
console.log (name) // Jack;
// var キーワードを使用することを忘れないでください。
// var キーワードを使用せずに変数を宣言すると、その変数はグローバル変数になります。
// ローカル変数を var キーワードで宣言しない場合、ローカル変数はグローバル スコープの一部になります
var name = "Michael Jackson";
function showCelebrityName () {
console.log (名前);
}
function showOrdinaryPersonName () {
name = "Johnny Evers";
console.log (名前);
}
showCelebrityName (); // Michael Jackson
// 名前はローカル変数ではなく、単にグローバル名変数を変更するだけです
showOrdinarypersonName () // Johnny Evers
//グローバル変数は、有名人の名前ではなく、Johnny Evers になりました
showCelebrityName () // Johnny Evers
// 解決策は、var キーワード
関数 showOrdinaryPersonName (); を使用してローカル変数を宣言することです。 {
var name = "Johnny Evers"; // 現在、name は常にローカル変数であり、グローバル変数は上書きされません
console.log (name);
}
// ローカル変数優先順位はグローバル変数よりも大きいです
//グローバル スコープの変数がローカル スコープで再度宣言された場合、ローカル スコープでこの変数を呼び出すと、ローカル スコープで宣言された変数が最初に呼び出されます:
var name = "Paul";
function users () {
// ここで、name 変数はローカルであり、グローバル スコープ内の同じ名前の変数より優先されます
var name = "Jack";
// 名前の検索は、グローバル スコープで関数の外側を調べようとする前に、関数内で開始されます
console.log (name); >
ユーザー () // ジャック
;
関数の外で宣言されたすべての変数はグローバル スコープ内にあります。ブラウザ環境では、このグローバル スコープは Window オブジェクト (または HTML ドキュメント全体) です。
関数の外で宣言または定義されたすべての変数はグローバル オブジェクトであるため、この変数はどこでも使用できます。たとえば、
var sex = "male";
//それらはすべてウィンドウ オブジェクト内にあります
console.log(window.myName); // paul
console.log('sex' in window);
変数が var キーワードを使用せずに初めて初期化/宣言された場合、その変数は自動的にグローバル スコープに追加されます。
function showAge(){
//年齢の初期化時には var キーワードは使用されないため、グローバル変数になります
age = 20;
console.log(age);
}
showAge(); //20
console.log(age); //年齢はグローバル変数であるため、ここでも出力は 20
setTimeout 関数はグローバル スコープで実行されます
setTimeout の関数はグローバル スコープ内にあるため、関数内で this キーワードが使用される場合、this キーワードはグローバル オブジェクト (ウィンドウ) を指します。
var Value1 = 200;
var Value2 = 20 ;
var myObj = {
Value1 : 10,
Value2 : 1,
caleculatedIt: function(){
setTimeout(function(){
コンソール.log( this.Value1 * this.Value2);
}, 1000);
}
}
myObj.caleculatedIt() //4000;
グローバル スコープの汚染を避けるために、通常、宣言するグローバル変数はできるだけ少なくします。
変数のホイスト
すべての変数宣言は、関数の先頭 (変数が関数内にある場合) またはグローバル スコープの先頭 (変数がグローバル変数の場合) にホイストされます。例を見てみましょう:
function showName () {
console .log ( "名: " name);
var name = "Ford";
console.log ("姓: " name);
}
showName ();
// 名: unknown
// 姓: Ford
// unknown が最初に出力される理由は、ローカル変数名が関数の先頭にホイストされているためです
//つまり、最初に呼び出されるのはこのローカル変数です。
// コードが JavaScript エンジンによって実際に処理される方法は次のとおりです。
function showName () {
var name; / 名前がホイストされます (割り当てが以下で行われるため、この時点では未定義であることに注意してください)
console.log ("First Name: " name) // First Name: unknown
name = "Ford "; // 名前には値が割り当てられています
// 現在の名前は Ford
console.log ("Last Name: " name); // 姓: Ford
}
関数宣言は変数宣言を上書きします
関数宣言と変数宣言 (注: これは単なる宣言であり、値が割り当てられているわけではありません) がある場合、変数名と関数名これらはすべて同じであるため、外側のスコープの先頭にプロンプトが表示されますが、関数の優先順位が高いため、変数の値は関数によって上書きされます。
// 変数と関数は両方ともnamed myName
var myName;?
function myName () {
console.log ("Rich");
}
// 関数宣言は変数名をオーバーライドします
console.log(myName のタイプ);
var myName = "Richard"; // これは関数宣言をオーバーライドする変数割り当て (初期化) です。
function myName () {
console.log ("リッチ") ;
}
console.log(typeof myName); // 文字列

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

Pythonはデータサイエンスや機械学習により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、簡潔な構文とリッチライブラリエコシステムで知られており、データ分析とWeb開発に適しています。 2。JavaScriptは、フロントエンド開発の中核です。 node.jsはサーバー側のプログラミングをサポートしており、フルスタック開発に適しています。

JavaScriptは、最新のブラウザにすでに組み込まれているため、インストールを必要としません。開始するには、テキストエディターとブラウザのみが必要です。 1)ブラウザ環境では、タグを介してHTMLファイルを埋め込んで実行します。 2)node.js環境では、node.jsをダウンロードしてインストールした後、コマンドラインを介してJavaScriptファイルを実行します。

Quartzタイマーを使用してタスクをスケジュールする場合、Quartzでタスク通知を事前に送信する方法、タスクの実行時間はCron式によって設定されます。今...

JavaScriptプログラミング、プロトタイプチェーンの関数パラメーターの理解と操作のJavaScriptのプロトタイプチェーンの関数のパラメーターを取得する方法は、一般的で重要なタスクです...

WeChatアプレットWeb-ViewでVue.jsを使用する動的スタイルの変位障害がvue.jsを使用している理由の分析...


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

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

ホットトピック



