JavaScript には 2 つの等価演算子のセットがあり、1 つは == と !=、もう 1 つは === と !== です。前者は値の等しいかどうかだけを比較しますが、後者は値に加えて型が同じかどうかも比較します。
前者のグループは使用せず、常に === と !== のみを使用してください。 == はデフォルトで型変換を実行するため、ルールを覚えるのは非常に困難です。信じられない場合は、次の 5 つの判定の値が真か偽かを答えてください:
eval は文字列を直接実行するために使用されます。このステートメントも、パフォーマンスとセキュリティの問題があり、コードが読みにくくなるため、使用しないでください。
myValue = myObject[myKey]; として直接記述できます。 、公式 Web サイトを使用できます。 json_parse.js によって提供されるパーサーが実行されます。
このコマンドの機能はループの先頭に戻ることですが、ループは先頭に戻ります。したがって、適切に構築することで、このコマンドの使用を完全に回避でき、効率が向上します。
ブレーク
}
6. 単一行のブロック構造 if、while、do、for はすべてブロック構造のステートメントですが、単一行のコマンドも受け入れることができます。たとえば、
if (ok) t = true;
は、
if (ok)
t = true; と書かれていても、コードを読むのに役立ちません。将来ステートメントを追加するときに間違いを犯しやすくなります。コマンド行が 1 行のみかどうかに関係なく、中括弧を追加することをお勧めします。
if (ok){
t = true;
}
7. そして --
インクリメント演算子とデクリメント演算子 -- から直接来ます。 C 言語では、表面的にはコードを非常にコンパクトにできますが、実際にはコードがより複雑でわかりにくくなります。したがって、コードをきれいにし、読みやすくするために、これを使用しない方がよいでしょう。
8. ビット単位の演算子
JavaScript は、ビット単位の AND&、ビット単位の OR|、ビット単位の XOR^、ビット単位の NOT、左シフト << などの Java のビット単位演算子を完全に適用します。 、符号付き右シフト>>、およびゼロパディング右シフト>>>。
この演算子のセットは整数用であるため、JavaScript ではまったく役に立ちません。JavaScript 内ではすべての数値が倍精度浮動小数点数として保存されるためです。これらを使用すると、JavaScript はまずオペランドを整数に変換してから操作を実行する必要があるため、速度が低下します。さらに、「ビットごとの AND 演算子」& は「論理 AND 演算子」&& と同じであるため、混同しやすいです。
9. 関数ステートメント
JavaScript で関数を定義するには、
Function foo() { }
と
var の 2 つの方法があります。 foo = function () { }
2 つの記述方法は完全に同等です。ただし、前者の書き方は解析中にパーサーによって自動的にコードの先頭に昇格されるため、関数を最初に定義してから使用するという要件に違反します。そのため、後者の書き方を使用することをお勧めします。関数を定義するとき。
10. 基本データ型のオブジェクトのパッケージ化
JavaScript の基本データ型には文字列、数値、ブール値が含まれており、それらはすべて対応するパッケージ化オブジェクト String、Number、ブール値。したがって、関連する値を次のように定義します。
new String( "Hello World");
new Number(2000);
new Boolean(false);
このように書くのは全く不要で非常に混乱しますので、使用しないことをお勧めします。
さらに、新しいオブジェクトと新しい配列の使用は推奨されませんが、{} と [] で置き換えることができます。
11.新しいステートメント
JavaScript は、Lambda 関数をサポートする世界で最初に広く使用されている言語であり、本質的には Lisp に似た関数型プログラミング言語です。しかし、現在の世界では、プログラマーの 90% 以上がオブジェクト指向プログラミングを使用しています。主流に近づくために、JavaScript は妥協してクラスの概念を採用し、クラスに基づいてオブジェクトを生成できるようにしました。
クラスは次のように定義されています:
var Cat = function (name) {
this.name = name; new Cat('mimi');
関数を使用してクラスを生成し、new を使用してオブジェクトを生成するこの構文は、実際には非常に奇妙で直感的ではありません。全然。また、使っているとnewの追加を忘れがちで実行関数になってしまい、その後不可解にもグローバル変数がいくつか増えてしまいます。したがって、この方法でオブジェクトを作成せず、回避策を使用することをお勧めします。
Douglas Crockford は関数を与えました:
コードをコピー
コードは次のとおりです:
プロトタイプ オブジェクトを操作するオブジェクトを作成するときにこの関数を使用します:
コードをコピーします
コードは次のとおりです:
12.void
言語では、void は値を表現しない型です。しかし、Javascript では、void はオペランドを受け入れ、未定義を返す演算子です。
void 0; // 未定義
このコマンドは役に立たず、混乱を招くため、使用しないことをお勧めします。