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);
Это прекрасно работает.