2

シングルページアプリケーションに関する本を読んでいますが、ある時点で for...in ループがあります:

KEYVAL:
for(key_name in arg_map){
    if(arg_map.hasOwnProperty(key_name)){
        if(key_name.indexOf('_') === 0) continue KEYVAL;

        anchor_map_revise[key_name] = arg_map[key_name];

        key_name_dep = '_' + key_name;
        if(arg_map[key_name_dep]){
            anchor_map_revise[key_name_dep] = arg_map[key_name_dep];
        }
        else{
            delete anchor_map_revise[key_name_dep];
            delete anchor_map_revise['_s' + key_name_dep];
        }
    }
}

特に目を引いたのはKEYVAL、ループの直前にある単語です。変数ですか?それは何を表していますか?それはなんのためですか?この構文はどういう意味ですか? この単語は、含まれているコードの 2 つの場所にのみ表示され、例全体では表示されません。

これを知りたくていろいろ調べてみましたが、今のところ情報がありません。誰か助けてくれませんか?

ありがとうございました。

4

3 に答える 3

3

KEYVAL:操作を繰り返すためにループで使用されるラベルです。ドキュメントを見てください

これは GOTO ステートメントに似ています。

コードで行うことは、この条件が真になったときです

if(key_name.indexOf('_') === 0) continue KEYVAL;

ラベルに移動し、KEYVAL:この行の下のコードを実行せずにループを再度実行します。

于 2013-07-27T04:56:35.220 に答える
2

これはlabel一種の行番号ですが、行位置にロックされていません。

GOTO のようにこのラベルにジャンプし続けます。

この基準が満たされた場合:

if(key_name.indexOf('_') === 0) continue KEYVAL;

JavaScript は上のラベルから続いています。

于 2013-07-27T04:55:48.093 に答える
1

ブレイクアンドコンティニュー用です。

MDN を確認する

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label

于 2013-07-27T04:56:51.167 に答える