ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptを深く理解する学習ノート(1) 質の高いコードを書く_JavaScriptスキル

JavaScriptを深く理解する学習ノート(1) 質の高いコードを書く_JavaScriptスキル

WBOY
WBOYオリジナル
2016-05-16 17:51:05997ブラウズ

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 ステートメントを追加した方が便利な形式です。初期化されていないが宣言されているすべての変数の初期値は未定義です




コードをコピー
コードは次のとおりです: function func() { var a = 1, b = 2,
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() {
var i = 0, max, myarray = []; // ... for (i = 0, max = myarray.length; i < max; i ) { // myarray を使用します[i] 何かをする }
}


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