ホームページ > ウェブフロントエンド > jsチュートリアル > Javascript学習ノート2 - 変数_基礎知識

Javascript学習ノート2 - 変数_基礎知識

WBOY
リリース: 2016-05-16 18:13:42
オリジナル
1254 人が閲覧しました
1. Javascript の変数宣言について
JavaScript では、変数
var a=1; を宣言するか、次の 2 つの式を直接宣言できます。 > 違いがあります。
1 つは現在のスコープのローカル変数であり、もう 1 つは現在のスコープのグローバル変数です。
JavaScript 言語の特別な点は、グローバル変数を内部で直接読み取ることができることです。機能。



コードをコピーします コードは次のとおりです。 var n=999; f1() {
alert(n);
}
f1() // 999


一方、関数内のローカル変数を自然に読み取ることはできません。機能の外。



コードをコピー
コードは次のとおりです。 function f1(){ var n=999 ;
}
alert(n); // エラー


2.
JavaScript 変数スコープ チェーン


コードをコピーします
コードは次のとおりです: var x='000 ' document.writeln(x); '000 '
a();
function a(){
var x='aaa ';
document.writeln(x);
var x='bbb ';
document.writeln(x); //bbb
}
b(); //aaa
}
//結果は次のとおりです: 000 unknown bbb aaa


原則:
変数が使用されるときは、まず関数ブロックから変数を検索します (権限のある関数の呼び出しオブジェクトによって説明されます)。
見つかった場合は、上位の関数ブロックから見つかるまで検索します。
最上位のコードまで定義が見つからなかった場合 (var x=' の位置を参照) 000 ';)、コードは未定義のエラーを報告します。
1. 実行順に、x '000 ' を出力します (これは問題ありません)。
2. 次に、a() で b() を実行します。 .b() は x を出力する必要があります。関数本体 (スコープ) に x の定義がありますが、値が割り当てられていないため、出力は未定義です (重要な点!)
5. x, x には値が割り当てられているので、bbb が出力されます。
6. 最後に、aaa を出力します。




コードをコピー


コードは次のとおりです。

alert( x) //return "f2"
}
f();
alert(x); //return "global" は再割り当てされていません: f2
//結果がポップアップしますそれぞれ: f2 global f2 global


説明:
まず f() で f2() を実行します。
f2() は内部関数のスコープを作成するため、x='f2'グローバル x ではなく、f() の x 値を変更します。
alert(x) は 'f2'、alert(window.x) は 'global' です。
次に、alert(x) を実行します。 of x はグローバル、つまり「グローバル」です

3. 初心者向けの提案

1. グローバル変数を減らす (解決策: 変数をオブジェクトにカプセル化します)
引用:
世界中の散らかった足跡をすべて 1 人に共有することで、他のアプリケーション、ガジェット、または JS ライブラリとの相互運用性のリスクを大幅に減らすことができます。」
– Douglas Crockford




コードをコピーします
コードは次のとおりです:


var name = 'Jeffrey';
var lastName = 'Way'; doSomething() {...}
console.log(name); // Jeffrey -- または window.name より良い書き方
コードをコピー


コードは次のとおりです:

var DudeNameSpace = {
name : 'Jeffrey',
lastName : 'そうですね、
doSomething : function() {...} } console.log(DudeNameSpace.name); // Jeffrey どのように劇的に配置したかに注目してください。 「DudeNameSpace」オブジェクトの下の「乱雑な足跡」2. 変数宣言の長いリスト?あまり多くの変数を記述せず、カンマを使用してください。



コードをコピー


コードは次のとおりです:

var someItem = 'ある文字列';
var anotherItem = '別の文字列';
var oneMoreItem = 'もう 1 つの文字列';
Better way of writing
Copy code The code is as follows:

var someItem = 'some string',
anotherItem = 'another string',
oneMoreItem = 'one more string';

Self-explanatory. I don't know if this will speed up your code, but it will make your code a lot cleaner.
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート