JavaScriptにはキーワードが付いています。ステートメントの本来の目的は、ステップバイステップオブジェクトアクセスのために名前空間スケッチ方法を提供することです。つまり、指定されたコード領域では、オブジェクトがノード名を介して直接呼び出されます。
ステートメントの機能は、スコープチェーンを一時的に変更し、繰り返し入力を減らすことです。
その構文構造は次のとおりです。
with(object){//ステートメント}実用的な例を見てみましょう:
with(document.forms []){name.Value = "Lee King"; address.value = "peking"; zipcode.value = ""; }対応する従来のライティング方法は次のとおりです。
document.forms []。name.value = "lee king"; document.forms []。address.value = "peking"; document.forms []。zipcode.value = "";
声明の簡潔さと明確さを見ることができますが、コードの世界で真の完璧さを見つけることは困難です。
JSインタープリターは、withブロック内の変数がwithブロックに含まれるオブジェクトに属しているかどうかを確認する必要があります。速度とコードのボリュームを考慮するために、比較的妥協的なソリューションを見つけることができます。
var form = document.forms []; form.name.value = "Lee King"; form.address.value = "Peking"; form.zipcode.value = "";
したがって、将来の効率的なコード開発では、可能な限りステートメントを使用することを避ける必要があります。
テスト後:
var a = 123; var b = {a:321}; with(b){console.log(a); // 321} var a = 123; var b = {}; (b){console.log(a); // 123}スコープチェーンから分析しますJavaScriptでは、関数はオブジェクトであり、実際、JavaScriptのすべてがオブジェクトです。関数内には、JavaScriptエンジン、[[Scope]]がアクセスできる内部プロパティがあります。このプロパティには、関数が作成されたときにスコープ内のオブジェクトのコレクションが含まれています。このコレクションは、スコープチェーンと呼ばれます。
たとえば、次のコード:
関数add(num1、num2){var sum = num1 + num2;返品額; }関数が作成されると、下の図に示すように、すべてのグローバル変数を含むスコープチェーンにグローバルオブジェクトが入力されます。
関数が実行されると、アクティブオブジェクトが作成されます。これには、パラメーターという名前のすべてのローカル変数が含まれています。オブジェクトは、スコープチェーンのフロントエンドに押し込まれます。関数が実行されると、オブジェクトも破壊されます。
グローバル変数は、アクティブオブジェクトによってスコープチェーンの端までプッシュされることがわかります。そのため、グローバル変数アクセス速度が遅い理由です。
と
一般的に言えば、スコープチェーンは、声明とのみの影響を受けます。使用すると、関数は新しいアクティブオブジェクトを作成し、それをフロントエンドに押します。これはオブジェクトです。これは、すべてのローカル変数が2番目のスコープチェーンオブジェクトにあることを意味します。そのため、使用を避ける必要があります。
上記は、編集者によって紹介されたJavaScriptのステートメントとの理解です。それがあなたに役立つことを願っています。詳細情報を知りたい場合は、wulin.comのWebサイトに注意してください!