javascript学習ノートを深く理解する(一)高品質コードを作成する
3338 ワード
一、変数
•グローバル変数
JavaScriptの二つの特徴は、知らず知らずのうちにグローバル変数を作成するのは意外と簡単です.まず、宣言なしで変数を使うことができます.第二に、JavaScriptには暗黙的なグローバル概念があり、あなたが宣言しないいかなる変数もグローバルオブジェクト属性になることを意味します.(本当の意味でのグローバル変数ではなく、deleteで削除できます.)
varによって作成されたグローバル変数(どの関数以外のプログラムでも作成)は削除されません.varなしで作成された暗黙的なグローバル変数(関数内で作成されるかどうかは無視)は削除されます.
関数の上に単一var文を使うのは比較的に有用な形式である.初期化されていないすべての変数の初期値はundefinedです.
•使用を推奨する
非配列オブジェクトのエルゴードに適用すると、行列は通常のforサイクルを使用し、オブジェクトはfor-iループを使用します.hasOwnProperty()メソッドを使用して、オブジェクト属性を遍歴すると、プロトタイプチェーンから下りてくる属性をフィルタリングすることができます.
隠しタイプの変換を避ける
•継続して使う==と!==
4 evalを使用しないようにし、set Interval()、setTimeout()とFunction()の構造関数に文字列を伝達しないようにし、関数で置換します.
五parseInt()数値変換
基数パラメータに値を付けることを推奨します.
コンストラクタの名前:MyConstructor();
一般関数の名前:myFunction();
変数の名前:first Name;
プライベート属性または方法:_secondeName
定数:PI、MAX
•グローバル変数
JavaScriptの二つの特徴は、知らず知らずのうちにグローバル変数を作成するのは意外と簡単です.まず、宣言なしで変数を使うことができます.第二に、JavaScriptには暗黙的なグローバル概念があり、あなたが宣言しないいかなる変数もグローバルオブジェクト属性になることを意味します.(本当の意味でのグローバル変数ではなく、deleteで削除できます.)
function sum(x,y) {
// result ,
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なしで作成された暗黙的なグローバル変数(関数内で作成されるかどうかは無視)は削除されます.
//
var global_var = 1;
global_novar = 2; //
(function () {
global_fromfunc = 3; //
}());
//
delete global_var; // false
delete global_novar; // true
delete global_fromfunc; // true
//
typeof global_var; // "number"
typeof global_novar; // "undefined"
typeof global_fromfunc; // "undefined"
•単一var形式宣言変数関数の上に単一var文を使うのは比較的に有用な形式である.初期化されていないすべての変数の初期値はundefinedです.
function func() {
var a = 1,
b = 2,
sum = a + b,
myobject = {},
i,
j;
// function body...
}
•var散布問題
//
myname = "global"; //
function func() {
alert(myname); //"undefined" var myname = "local"; alert(myname); // "local" } func(); :
myname = "global"; // global variable
function func() {
var myname; // -> var myname = undefined;
alert(myname); // "undefined"
myname = "local";
alert(myname); // "local"}
func();
二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
// :
var i, myarray = [];
for (i = myarray.length; i�C-;) {
// myarray[i]
}
// while :
var myarray = [],
i = myarray.length;
while (i�C-) {
// myarray[i]
}
•for-i nサイクル非配列オブジェクトのエルゴードに適用すると、行列は通常のforサイクルを使用し、オブジェクトはfor-iループを使用します.hasOwnProperty()メソッドを使用して、オブジェクト属性を遍歴すると、プロトタイプチェーンから下りてくる属性をフィルタリングすることができます.
隠しタイプの変換を避ける
•継続して使う==と!==
4 evalを使用しないようにし、set Interval()、setTimeout()とFunction()の構造関数に文字列を伝達しないようにし、関数で置換します.
五parseInt()数値変換
基数パラメータに値を付けることを推奨します.
var month = "06",
year = "09";
month = parseInt(month, 10);// 0 8
year = parseInt(year, 10);
六プログラミング仕様コンストラクタの名前:MyConstructor();
一般関数の名前:myFunction();
変数の名前:first Name;
プライベート属性または方法:_secondeName
定数:PI、MAX