JavaScriptの中の語句
3409 ワード
一、switch文
JavaScriptはcase文の後にある任意の表現を許可します.ここでcaseのマッチングは====に等しいので、類型の変換プロセスがありません.
マッチする項目が見つからない場合は、実行ラベルがdefaultの文であり、default文は理論的にはswitchのどの位置に置いてもいいですが、最後に置くのが一般的です.
対比:c、c+++とjavaではcase表現はコンパイル時定数でなければならないので、効率はJavaScriptの中より高いです.
二、for/in文
その中: variable:値式の左に適用される値:var文、配列の要素またはオブジェクトの1つの属性 オブジェクト名または計算結果を対象とする表式 statement:循環主体 for/inサイクルの主体はオブジェクトの属性ごとに一回実行します.サイクル前にオブジェクトの属性名は変数variableに文字列として付与されます.その後、循環体内で変数と「[]」演算子で属性の値を調べられます.
単純で迅速なコピーオブジェクトのすべての属性から行列のコード:
三、contine文
continue文は現在のループを終了し、次の反復を開始します.異なるタイプの循環語句には意味が違います.は、whileサイクルにおいて、先頭のexpressionを再検出し、もし値がtrueであれば、ループ を最初から実行する.は、do/whileサイクルにおいて、ループの底部にジャンプし、トップから次のサイクルを開始する前に、まずここでサイクル条件 を検出する.は、forサイクルでincrementの表現を先に計算し、その後、test表現を検出して、次の反復 を実行できるかどうかを判定する.は、for/inサイクルにおいて、次の循環変数に割り当てられた属性名を新たな反復を開始する.
注意:whileとforの中のcontinue行為は違いがあります.whileの中でまず循環条件のところにジャンプします.forでは、まずincrementを計算してから循環条件のところに行きます.そのため、この2つのサイクルの中でcontinueの語句行動は異なるので、一つのwhileループを使って完全に一つのforサイクルをシミュレートすることは不可能です.
四、function
関数ネストは、例えばif、whileなどの語句には現れない関数の最上階にのみ存在します.JavaScriptの関数は、実行時ではなく解析時に発生します.たとえば:
五、throw文
文法:throw expression;
expressionは任意のタイプであってもよく、通常はErrオブジェクトまたはErrorのサブクラスである.たとえば:
finallyは最終的なジャンプの前に実行されますが、finally自体がreturn、break、continue文またはthrow文を含んでいる場合、または異常な方法を呼び出して制御フローを変更した場合、待ち時間の制御フローの移行は破棄され、新しいシフトが行われます.
六、with文
記事http://liugang594.iteye.com/blog/1523878では、変数名を解析するために作用するドメインチェーンについて議論した.with文はスコープを一時的に変更するためのものです.文法は以下の通りです
このステートメントは、Objectを作用ドメインチェーンのヘッダに追加し、statementを実行して、作用領域を元の状態に戻すために使用されます.
実際のアプリケーションでは、withは大量の入力を減らすことができます.例えば、あるHTMLフォーム要素にアクセスすることができます.
frames[i].document.forms[0].address.value
この変数に複数のアクセスが必要な場合は、with文を使って簡単に多くのアクセスができます.
でも、使うのはおすすめできません.短所: を最適化するのは難しいです. 速度が遅いです. 人は人を困惑させやすいです.
JavaScriptはcase文の後にある任意の表現を許可します.ここでcaseのマッチングは====に等しいので、類型の変換プロセスがありません.
case 60*60*24:
case Math.PI:
case n+1:
case a[0]:
マッチする項目が見つからない場合は、実行ラベルがdefaultの文であり、default文は理論的にはswitchのどの位置に置いてもいいですが、最後に置くのが一般的です.
対比:c、c+++とjavaではcase表現はコンパイル時定数でなければならないので、効率はJavaScriptの中より高いです.
二、for/in文
for (variable in object)
statement
その中:
for ( var prop in my_object)
document.write("name: "+prop+"; "+my_object[prop], "</br>");
単純で迅速なコピーオブジェクトのすべての属性から行列のコード:
var o = {x:1, y:2, z:3};
var a = new Array();
var i = 0;
for(a[i++] in o);
三、contine文
continue文は現在のループを終了し、次の反復を開始します.異なるタイプの循環語句には意味が違います.
注意:whileとforの中のcontinue行為は違いがあります.whileの中でまず循環条件のところにジャンプします.forでは、まずincrementを計算してから循環条件のところに行きます.そのため、この2つのサイクルの中でcontinueの語句行動は異なるので、一つのwhileループを使って完全に一つのforサイクルをシミュレートすることは不可能です.
四、function
関数ネストは、例えばif、whileなどの語句には現れない関数の最上階にのみ存在します.JavaScriptの関数は、実行時ではなく解析時に発生します.たとえば:
alert(f(4)); //16
var f = 0; // f
function f(x){ // ,
return x*x;
}
alert(f); //f , 0
五、throw文
文法:throw expression;
expressionは任意のタイプであってもよく、通常はErrオブジェクトまたはErrorのサブクラスである.たとえば:
function factorial(x){
if(x<0) throw new Error("x must not be negative");
for(var f = 1;x>1;f*=x,x++);
return f;
}
try/catch/finally文を使用して異常を捕捉します.例えば、try{
....
}catch(ex){
...
}finally{
...
finallyは最終的なジャンプの前に実行されますが、finally自体がreturn、break、continue文またはthrow文を含んでいる場合、または異常な方法を呼び出して制御フローを変更した場合、待ち時間の制御フローの移行は破棄され、新しいシフトが行われます.
六、with文
記事http://liugang594.iteye.com/blog/1523878では、変数名を解析するために作用するドメインチェーンについて議論した.with文はスコープを一時的に変更するためのものです.文法は以下の通りです
with(object)
statement
このステートメントは、Objectを作用ドメインチェーンのヘッダに追加し、statementを実行して、作用領域を元の状態に戻すために使用されます.
実際のアプリケーションでは、withは大量の入力を減らすことができます.例えば、あるHTMLフォーム要素にアクセスすることができます.
frames[i].document.forms[0].address.value
この変数に複数のアクセスが必要な場合は、with文を使って簡単に多くのアクセスができます.
with(frames[i].document.forms[0]){
name.value = "";
address.value = "";
email.value = "";
}
でも、使うのはおすすめできません.短所: