JavaScriptのの不適切な使用
この章で我々はJavaScriptエラーの使用について説明します。
アプリケーション代入演算子のエラー
代入演算子は等号(=)がある場合は、JavaScriptのプログラムで使用すると、エラー結果を生成する条件文を使用する場合は、正しいアプローチは、2等号(==)の比較を使用することです。
条件文がfalseを返した場合 、xが10に等しくないので、(私たちは期待して):
条件文がtrueを返す場合は割り当てのx 10,10の条件が真であるので、(私たちは期待できないこと)文が実行されます。
条件文は、(我々が期待したものではない )がfalseを返した場合のx 0,0割り当てのための条件が偽であるため、ステートメントが実行されます。
変数の代入の値を返します。 |
一般的なエラーの比較
以下の条件文がtrueを返した場合、従来と比較して、データ型は、無視されます:
厳密な比較演算では、アイデンティティの計算は===演算子は、型チェックの式の値は、次の条件文はfalseを返したときながら:
switch文で発生するこのエラーは、多くの場合、アイデンティティ演算子(===)を使用して計算switch文を比較しました。
次の例では、警告ポップを実行します:
タイプは警告のポップアップを実行していないため、次の例は、矛盾しています:
追加および接続の際の考慮事項
2つの数の加算 。
2を接続するための接続 文字列 。
加算とJavaScriptを+演算子を使用して接続されています。
次に、私たちは一緒に2つの数値を参照し、一例として、数字と区別の文字列に接続することができます。
結果を追加使用して変数が矛盾しています:
VAR Y = 5。
var Z = X + Y; 結果// zは15であります
VAR X = 10。
するvar Y = "5"。
varのz = X + Y; 結果// zは「105」であります
»をお試しください
浮動小数点データの使用に注意してください
JavaScriptのすべてのデータを格納する64ビットの浮動小数点データ・タイプ(フロート)に基づいています。
JavaScriptを含むすべてのプログラミング言語は、データの浮動小数点精度に決定することは困難です:
私はこの問題を解決するため、あなたが解決するために、整数の乗算や除算を使用することができます。
JavaScriptの文字列支店
私たちは、行が文字列でJavaScriptステートメントを実行するために壊し使用します。
ただし、文字列に直接キャリッジリターンで与えられています:
私たちは、エラーメッセージを表示するには、開発ツールや、F12キーを押しを選択することができます。
次のように文字列の改行は、バックスラッシュ(\)を使用する必要があります。
間違ったセミコロン
コードのステートメントブロックが実行されない場合、間違ったセミコロン以降、次の例:
return文のご注意
JavaScriptは自動的にデフォルトでコードの最後の行に終了します。
次の2つの例は、同じ結果(ないセミコロン)を返します。
JavaScriptは、マルチラインステートメントを終了するために使用することができます。
次の例では、同じ結果を返します。
しかし、結果の次の例では、未定義返されます。
なぜこのような結果はありますか? そのためJavaScriptで、一貫性のある4コードと次のコードの例:
function myFunction(a) { var power = 10; return; // 分号结束,返回 undefined a * power; }
解決します
それは不完全な文がある場合、は以下の通り:
var
JavaScriptは、二行目の文を読み取るしようとします:
power = 10;
ただし、この文は完了ですので:
return
JavaScriptが自動的に声明をオフにします:
return;
JavaScriptでは、セミコロンは省略可能です。
リターンは完全な文章なので、JavaScriptのreturn文をオフにします。
注意:return文の行を壊さないでください。 |
配列のインデックス名を使用
多くのプログラミング言語は、配列インデックスとして名前を使用することを可能にします。
配列のインデックスとして名前を使用するには、連想配列(またはハッシュ)と呼ばれています。
JavaScriptが唯一の数値インデックスインデックス・アレイへの名前の使用をサポートしていません。
例
人[0] = "ジョン" 。
人[1] = "ドウ" ;
人 [2] = 46;
VARのx = person.length。 // Person.lengthは3を返します。
するvar Y =人[0]; //人[0] "ジョン"を返します
»をお試しください
JavaScriptでは、 インデックスなどの オブジェクト の名前を使用します。
アレイにアクセスするときにインデックスとして名前を使用する場合、JavaScriptはオブジェクトの標準的な配列を再定義します。
この操作を実行した後、配列のメソッドとプロパティは、もはやそれ以外の場合はエラーが発生します、使用されません。
例
人[ "firstNameの"] = "ジョン"。
人[ "lastNameの"] = "ドウ";
人[ "年齢"] = 46 ;
VARのx = person.length; // person.length 戻り0
するvar Y =人[0]; //人[0] undefinedを返します
»をお試しください
配列要素を定義し、最後にカンマを追加することはできません
エラーが定義されています。
points = [40, 100, 1, 5, 25, 10,];
道の正しい定義:
points = [40, 100, 1, 5, 25, 10];
オブジェクトを定義し、最後にカンマを追加することはできません
エラーが定義されています。
websites = {site:"本教程", url:"www.w3big.com", like:460,}
道の正しい定義:
websites = {site:"本教程", url:"www.w3big.com", like:460}
未定義のヌルではありません
変数、プロパティとメソッドのための未定義のオブジェクトのための JavaScriptのでは、nullを返します。
オブジェクトは、それ以外の場合は未定義、ヌルとしてのみ可能に定義されています。
我々は物体の存在するかどうかをテストする場合は、オブジェクトがまだ定義されていない場合にエラーをスローします。
間違った使用:
if (myObj !== null && typeof myObj !== "undefined")
正しい方法は、我々は、オブジェクトが定義されているかどうかを検出するために、typeofを使用する必要があるということです。
if (typeof myObj !== "undefined" && myObj !== null)
ブロック有効範囲
JavaScriptが各コードブロックに新しいスコープを作成しません、各コードブロックの一般的な範囲はグローバルです。
次のコードは、変数iは、未定義の代わりに10を返します。