16

クライアントの JavaScript ファイルを開いたところ、最初の行は次のようになります。

{
    var s_account="blog";
}

私にはわかりません。通常、私の経験では、中括弧は関数を囲みます...

function welcome(){ ...

...またはjson JavaScriptオブジェクト

var attributes = { this : "that...

前後にテキストがない中括弧がある理由を誰か教えてもらえますか? それは何をしますか/それのポイントは何ですか?

4

6 に答える 6

16

これはブロックであり、ラベルを付けない限り完全に無意味です。

block: {
    var s_account="blog";
    console.log("executed");
    break block;
    console.log("not executed");
}

于 2013-08-08T15:37:59.013 に答える
11

私の考えでは、このようなことを行う唯一の論理的な理由は、組織化の手法です。

function banana(){
    // private members
    {
        var foo = "foo",
            bar = "bar",
            baz = "baz";

        function bux(){
            console.log("bux");
        }
    }

    // public members

    this.fin = "fin";
    this.fang = "fang";
    this.foom = "foom";

    this.shamalamadingdong = function(){
        bux();
    };
}

また、ほとんどの IDE では、その「プライベート メンバー」ブロックを折りたたんで邪魔にならないようにすることができます。

于 2013-08-08T15:44:09.383 に答える
7

ブロック文といいます。式をグループ化できます。通常はifwhileのような制御構造で使用されますが、単独で使用することもできます。

JavaScript にはブロック スコープがないため、コードは同じスコープで実行されます (あたかも存在し{}ないかのように)。

例:

{
    var s_account="blog";
}

console.log(s_account);

それはうまくいきます。

于 2013-08-08T15:32:07.363 に答える
7

前後にテキストがない中括弧がある理由を誰か教えてもらえますか? それは何をしますか/それのポイントは何ですか?

Javascript には重要なポイントはありません。コードがただの場合とまったく同じように動作します

var  s_account="blog";
投機

ブロックスコープを持つ他の言語では、これにより変数のスコープが制限される可能性がありますが、JS には (良くも悪くも) その機能がないため、制御構造や関数のない中かっこは本質的に無意味であり、無視されます。

ただし、このコードは、削除された関数または if ステートメントから残っている可能性があります。それは間違いなくコピーするパターンではありません。

于 2013-08-08T15:34:59.847 に答える