ホームページ ウェブフロントエンド jsチュートリアル JavaScript_javascript スキルにおける var ありの変数宣言と var なしの変数宣言の違いの例

JavaScript_javascript スキルにおける var ありの変数宣言と var なしの変数宣言の違いの例

May 16, 2016 pm 04:36 PM
var 変数宣言

この記事では、JavaScript での var を使用した変数宣言と var を使用しない変数宣言の違いについて説明します。JS の変数宣言のスコープは関数に基づいているため、グローバル変数の汚染を回避する方法は

です。
(function(){ 
// ... 
})();
ログイン後にコピー

関数内で、var を使用して宣言された変数と var を使用せずに宣言された変数は異なります。 var を使用して宣言されたものはローカル変数であり、var を使用せずに宣言されたものはグローバル変数であるため、これを使用してインターフェイスのものを外部に公開できます。
グローバル スコープで変数を宣言すると、var の有無にかかわらず同じように見えます。宣言されたグローバル変数が window の属性であるかどうかは、ECMAScrpit5 が提供する属性クエリ メソッドを使用して見つけます。違います。

var fff = 2; 
window.ffa = 3; 
ffb = 4; 
this.ffc = 4; 
var ffftx = Object.getOwnPropertyDescriptor(window, 'fff'); //configurable:false,enumerable:true,value:2,writable:true 
var ffatx = Object.getOwnPropertyDescriptor(window, 'ffa'); //configurable:true,enumerable:true,value:2,writable:true 
var ffbtx = Object.getOwnPropertyDescriptor(window, 'ffb'); //configurable:true,enumerable:true,value:2,writable:true 
var ffctx = Object.getOwnPropertyDescriptor(window, 'ffc'); //configurable:true,enumerable:true,value:2,writable:true
ログイン後にコピー

上記の結果、まだ違いがあることがわかりました。属性を削除するために delete を使用して、構成可能性が false の属性が削除できないことを確認してみましょう。つまり、変数 var で宣言されたグローバル オブジェクトの属性は削除できません。関数宣言で作成されたグローバル オブジェクトの属性も削除できません。

delete fff; // 无法删除 
delete ffa; // 可删除 
delete ffb; // 可删除 
delete ffc; // 可删除
ログイン後にコピー

結論としては、グローバル変数を var 付きで宣言する場合と、var なしで宣言する場合には違いがあるということです。

var ステートメントを使用して宣言ステートメントを繰り返すことは合法であり、無害です。ステートメントが代入を伴って繰り返される場合、それは通常の代入ステートメントと何ら変わりません。宣言されていない変数を読み取ろうとすると、JS はエラーを報告します。
JavaScript の関数スコープ内では、宣言された変数または内部関数が関数本体に表示されます。つまり、関数は定義される前に使用できる可能性があります。関数を定義するには、関数定義式と関数宣言文の 2 つの方法があります。

// 函数定义表达式 
var fns = function (){ 
// ... 
}; 
// 函数声明语句 
function fns(){ 
// ... 
} 
ログイン後にコピー

関数宣言ステートメントは外部スクリプトまたは外部関数スコープの先頭に「進められる」ため、この方法で宣言された関数は、定義される前に出現するコードによって呼び出すことができます。関数定義式では、変数の宣言は行われますが、変数への代入は行われません。そのため、関数が定義される前に、式で定義された関数を呼び出すことはできません。

(function() { 
testa(); // 打印出testa 
testb(); // 报错:提示undefined is not a function 
console.log(testc); //undefined,如果移到上面就可以了 
function testa() { 
console.log("testa"); 
} 
var testb = function() { 
console.log("tesb"); 
} 
var testc = "testc"; 
})();
ログイン後にコピー

もちろん、変数や関数を宣言する際には、基本仕様に準拠しなければなりません。変数や関数は事前に宣言しておく必要があります。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

C++ コードでの「エラー: 宣言されていない識別子 '変数' の使用」問題を解決する C++ コードでの「エラー: 宣言されていない識別子 '変数' の使用」問題を解決する Aug 26, 2023 pm 01:46 PM

C++ コードでの「error:useofundeclaredidentifier'variable'」問題の解決 C++ でプログラミングする場合、さまざまなエラーが発生することがよくあります。よくあるエラーの 1 つは、「error:useofundeclaredidentifier'variable'」です。このエラーは通常、コード内で宣言されていない変数を使用していることを意味します。この記事では詳しく説明します

var、let、const の違いについて話しましょう (コード例) var、let、const の違いについて話しましょう (コード例) Jan 06, 2023 pm 04:25 PM

この記事では、JavaScript に関する関連知識をお届けします。主に、var、let、const の違い、ECMAScript と JavaScript の関係について紹介します。興味のある方はぜひご覧ください。皆さんのお役に立てれば幸いです。

Windows 11でオーディオサービスが応答しない問題を修正する18の方法 Windows 11でオーディオサービスが応答しない問題を修正する18の方法 Jun 05, 2023 pm 10:23 PM

オーディオ出力と入力が Windows 11 で期待どおりに動作するには、特定のドライバーとサービスが必要です。これらは場合によってはバックグラウンドでエラーが発生し、オーディオ出力がない、オーディオ デバイスが見つからない、オーディオが歪むなどのオーディオの問題を引き起こすことがあります。 Windows 11 でオーディオ サービスが応答しない問題を修正する方法 以下で説明する修正プログラムから始めて、問題を解決できるまでリストを順に進めていくことをお勧めします。 Windows 11 では、さまざまな理由でオーディオ サービスが応答しなくなる可能性があります。このリストは、Windows 11 でオーディオ サービスの応答を妨げるほとんどの問題を確認し、修正するのに役立ちます。プロセスを進めるには、以下の関連セクションに従ってください。方法 1: オーディオ サービスを再起動します。

PHP における var キーワードの役割と例 PHP における var キーワードの役割と例 Jun 28, 2023 pm 08:58 PM

PHP における var キーワードの役割と例 PHP では、var キーワードを使用して変数を宣言します。以前の PHP バージョンでは、var キーワードの使用がメンバー変数を宣言する慣用的な方法でしたが、その使用は推奨されなくなりました。ただし、場合によっては、引き続き var キーワードが使用されます。 var キーワードは主にローカル変数を宣言し、その変数をローカル スコープとして自動的にマークするために使用されます。これは、変数が現在のコード ブロック内でのみ表示され、他の関数やコード ブロックからはアクセスできないことを意味します。変数を使用する

エラーの解決策 AttributeError(\'{0!r} object has noattribute {1!r}\'.format(type(self).__name__, k)) エラーの解決策 AttributeError(\'{0!r} object has noattribute {1!r}\'.format(type(self).__name__, k)) Feb 29, 2024 pm 06:40 PM

エラー メッセージの理由は、Python コードでオブジェクト (self 変数で表される) が使用されているが、そのオブジェクトに k という名前の属性がないことが示されています。これは、オブジェクトにこのプロパティが定義されていないか、コード内の型エラーによりオブジェクトが予期された型ではないことが原因である可能性があります。修正方法 このエラーを解決するには、次の 1 つ以上を実行する必要がある場合があります。 コードにエラーがないか確認し、self 変数によって参照されるオブジェクトに k という名前のプロパティがあることを確認します。コードに型エラーがないか確認し、self 変数によって参照されるオブジェクトが予期した型であることを確認してください。属性が欠落している場合は、クラスでこの属性を定義し、tryException を使用してこのエラーを取得する必要があります。k がクラスで定義されていない属性であることが確かな場合は、確認してください

PHPでの変数の使い方 PHPでの変数の使い方 May 20, 2023 pm 02:33 PM

PHP は、開発者がサーバー側で動的な Web アプリケーションを作成できるようにする非常に人気のある Web 開発言語です。 PHP では、変数は値とデータを保存するために使用される基本的なデータ構造です。この記事ではPHPでの変数の使い方を紹介します。変数の基本構文 PHP で変数を宣言する構文は非常に簡単です。変数名はドル記号 ($) で始まり、その後に変数名が続きます。変数名には文字、数字、またはアンダースコアを組み合わせることができますが、文字またはアンダースコアで始まる必要があります。たとえば、次のコードは名前を宣言します。

let var const とはどういう意味ですか? let var const とはどういう意味ですか? Nov 14, 2023 pm 03:00 PM

llet、var、const はそれぞれブロック スコープ変数、関数スコープ変数、定数を表します。詳細な紹介: 1. let は、ブロック スコープで変数を宣言するために使用されます。let を使用して宣言された変数は、宣言されるまでアクセスできません。これはいわゆる一時的なデッド ゾーンです。2. var は、キーを宣言するために使用されます。変数。Word、宣言された変数は関数スコープまたはグローバル スコープにあり、ブロック レベルのスコープに制限されません。3. const、定数の宣言に使用されます。一度割り当てられると、変数は再割り当てできません。値は宣言後のものです。改造等は出来ません。

Golang 変数の宣言と代入の基本構文をすぐに始めましょう Golang 変数の宣言と代入の基本構文をすぐに始めましょう Dec 23, 2023 am 08:10 AM

Golang 変数の宣言と代入の基本的な構文の概要を簡単に紹介します。Golang は、優れたパフォーマンスと開発効率を備えた、静的に型付けされ、コンパイルされたプログラミング言語です。 Golang では、変数の宣言と代入は、プログラムを作成するときによく使用する基本操作の 1 つです。この記事では、Golang 変数の宣言と代入の基本的な構文を簡単に説明し、具体的なコード例を示します。変数宣言: Golang では、var キーワードを使用して変数を宣言し、変数の型を指定する必要があります。変化

See all articles