刚刚打开一个客户端的 javascript 文件,第一行是这样的:
{
var s_account="blog";
}
我不明白。通常,根据我的经验,花括号环绕一个函数......
function welcome(){ ...
...或一个 json JavaScript对象
var attributes = { this : "that...
谁能告诉我为什么花括号之前或之后没有文字?它有什么作用/它有什么意义?
刚刚打开一个客户端的 javascript 文件,第一行是这样的:
{
var s_account="blog";
}
我不明白。通常,根据我的经验,花括号环绕一个函数......
function welcome(){ ...
...或一个 json JavaScript对象
var attributes = { this : "that...
谁能告诉我为什么花括号之前或之后没有文字?它有什么作用/它有什么意义?
这是一个块,完全没有意义,除非你给它贴上标签:
block: {
var s_account="blog";
console.log("executed");
break block;
console.log("not executed");
}
在我看来,这样做的唯一合乎逻辑的原因是作为一种组织技术。
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 将允许您折叠“私有成员”块并将其排除在外。
那是块语句。块语句有多种用途,该代码没有使用任何一种用途(除了可能像 Shmiddty 建议的那样将内容组合在一起)。(事实上,我想在那段代码中说它们适得其反,因为对于许多从所有变量声明都是块范围的语言来到 JavaScript 的人来说,他们给人的印象是变量的范围是块,它不是。)
它可以有以下用途:
let
, const
, 和class
如果代码使用let
,const
或者class
,块范围将所得到的识别符,因为let
,const
和class
被块作用域在JavaScript。所以这输出"bar"
:
{
var foo = "bar";
}
console.log(foo);
但这会抛出一个ReferenceError
因为foo
范围为块:
{
let foo = "bar";
}
console.log(foo);
正如Esailija 指出的那样,如果它被标记并使用break
,则中断将提前退出块。
块语句最常见的用途是将附加到流控制语句(如if
和 )的语句组合在一起for
。在这个相当典型的if
:
if (something) {
doThis();
doThat();
}
......该{}
不是一部分的if
(你可以写if
不使用{}
),他们是一个块语句连接到的if
。
谁能告诉我为什么花括号之前或之后没有文字?它有什么作用/它有什么意义?
在 Javascript 中对它们没有任何意义。它的行为与代码完全相同
var s_account="blog";
投机
在其他具有块作用域的语言中,这可能会限制变量的作用域,但由于 JS 没有这个特性(无论好坏),没有控制结构或函数的大括号本质上是没有意义的,被忽略了。
但是,此代码很可能是从已删除的函数或 if 语句中遗留下来的。它绝对不是可以复制的模式。
它被称为块语句。它允许您对表达式进行分组。它通常与像控制结构使用if
和while
,但也可单独使用。
由于 JavaScript 没有块作用域,代码在相同的作用域中运行(就好像{}
它们不存在一样)。
例子:
{
var s_account="blog";
}
console.log(s_account);
这很好用。