JavaScript фигурные скобки без функции или json

Только что открыл клиентский файл javascript, и первые строки идут по строкам:

{
    var s_account="blog";
}

Которого я не получу. Обычно, по моему опыту, фигурные скобки обтекают функцию...

function welcome(){ ...

... или json объект JavaScript

var attributes = { this : "that...

Может ли кто-нибудь сказать мне, почему есть фигурные скобки без текста перед ними или после них? Что он делает/в чем смысл?

Ответ 1

Может ли кто-нибудь сказать мне, почему есть фигурные скобки без текста перед ними или после них? Что он делает/в чем смысл?

В Javascript нет существенного момента для них. Он будет действовать точно так же, как если бы код был просто

var  s_account="blog";
спекуляция

В других языках с областью блока это может ограничить область действия переменной, но поскольку JS не имеет этой функции (лучше или хуже), фигурные скобки без структуры или функции управления по существу бессмысленны и игнорируются.

Скорее всего, этот код был оставлен из удаленной функции или оператора if. Это определенно не шаблон, который нужно скопировать.

Ответ 2

Это блок и совершенно бессмысленно, если вы не отметили его:

block: {
    var s_account="blog";
    break block;
    alert("not executed");
}

Ответ 3

Единственная логическая причина сделать что-то подобное, на мой взгляд, является организационной техникой.

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 позволят вам свернуть этот блок "частных лиц" и избавиться от него.

Ответ 4

Он назвал оператор block statement. Он позволяет группировать выражения. Он обычно используется с структурами управления, такими как if и while, но также может использоваться сам по себе.

Поскольку JavaScript не имеет области блока, код работает в той же области (как будто {} там не было).

Пример:

{
    var s_account="blog";
}

console.log(s_account);

Это прекрасно работает.