1. 変数
•グローバル変数
JavaScript の 2 つの機能により、無意識のうちにグローバル変数を驚くほど簡単に作成できます。第一に、変数は宣言しなくても使用できます。第二に、JavaScript には暗黙のグローバル概念があり、宣言していない変数はグローバル オブジェクト プロパティになります (真のグローバル変数ではなく、delete を使用できます)
function sum(x,y) {
// 結果は宣言されていません。暗黙的なグローバル変数です。
result = x y>return result
}
function foo() {
// タスクチェーンを使用します。部分 var 宣言、b は暗黙的なグローバル変数
var a = b = 1
}
提案:
function (x,y) {
var a ,b
a = b = 1; //a, b はローカル変数
}
•var 関数
var で作成したグローバル変数(関数以外のプログラムで作成したもの)は削除できません。 var を使用せずに作成された暗黙的なグローバル変数は (関数内で作成されたかどうかに関係なく) 削除できます。
// 3 つのグローバル変数を定義します。
var global_var = 1;
global_novar = 2; // ネガティブ教材
(function () {
global_fromfunc = 3; // ネガティブ教材
}()); >
// 削除を試みます
delete global_var; // false
delete global_novar; // true
delete global_fromfunc; // 削除をテストします
typeof global_var; // "number"
typeof global_novar; // "unknown"
typeof global_fromfunc; // "unknown"
を使用します。関数の先頭に 1 つの var ステートメントを追加した方が便利な形式です。初期化されていないが宣言されているすべての変数の初期値は未定義です
コードをコピー
sum = a b,
myobject = {},
i,
j;
// 関数本体...
}
•var 拡散問題
コードをコピー
コードは次のとおりです: //カウンターの例myname = "global"; // グローバル変数function func() {
alert(myname) ; //"未定義" var myname = "local"; // "local" } func(); // グローバル変数
function func( ) {
var myname; // var myname = unknown と同等;
alert(myname); 🎜>alert(myname); // "local"}
func();
2 つの for ループ
•
を使用することをお勧めします
コードをコピーします
コードは次のとおりです。
function looper() {
}
i を次の式に置き換えます
コードをコピーします
コードは次のとおりです。
i = i 1
i = 1 次の 2 つのループ方法の方が高速です
//最初に変更された形式: var i, myarray = [ ]; for (i = myarray.length; i–-;) {
// myarray[i] を使用して何かを実行します
}
//2 番目のループは while ループを使用します:
var myarray = [],
i = myarray.length;
while (i–-) {
// myarray[i]
で何かを行う}
•for-in ループ
配列では通常の for ループが使用され、オブジェクトでは for-in ループが使用されます。 hasOwnProperty() メソッドを使用すると、オブジェクト プロパティを走査するときにプロトタイプ チェーンを下って来るプロパティをフィルターで除外できます。
3 暗黙的な型変換を避ける
• === と! に固執します。 ==
4. eval の使用を避け、setInterval()、setTimeout()、および Function() コンストラクターに文字列を渡すことを避け、代わりに関数を使用します。
5 つの parseInt() 数値変換
ベース パラメータに値を割り当てることをお勧めします。
var month = "06",
year = "09"
month = parseInt(month, 10);/ /0 で始まる文字列は 8 進数として扱われます
year = parseInt(year, 10);
6 つのプログラミング標準
コンストラクターの名前: MyConstructor();
一般的な関数の名前: myFunction();
変数の名前: firstName;
プライベート プロパティまたはメソッド: _secondeName、
定数: PI、MAX。