刚刚打开了一个客户端的 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
和在 JavaScriptclass
中是块范围的。所以这个输出"bar"
:
{
var foo = "bar";
}
console.log(foo);
但这会抛出一个ReferenceError
因为foo
它的作用域是块:
{
let foo = "bar";
}
console.log(foo);
正如Esailija 指出的那样,如果它被标记并使用break
,则 break 将提前退出块。
块语句最常见的用途是将附加到流控制语句(如if
and )的语句组合在一起for
。在这个相当典型的if
:
if (something) {
doThis();
doThat();
}
...{}
它们不是(您可以不使用编写)的一部分,它们是附加到.if
if
{}
if
谁能告诉我为什么大括号之前或之后没有文字?它有什么作用/有什么意义?
在 Javascript 中对它们没有意义。它的行为就像代码只是
var s_account="blog";
猜测
在其他具有块范围的语言中,这可能会限制变量的范围,但由于 JS 没有该功能(无论好坏),没有控制结构或函数的大括号本质上是没有意义的并且被忽略了。
然而,这段代码很可能是从已删除的函数或 if 语句中遗留下来的。这绝对不是要复制的模式。
它被称为块语句。它允许您对表达式进行分组。它通常与 and 等控制结构if
一起while
使用,但也可以单独使用。
由于 JavaScript 没有块作用域,因此代码在同一作用域中运行(就好像{}
它们不存在一样)。
例子:
{
var s_account="blog";
}
console.log(s_account);
这很好用。
快速添加。在像 Visual Code 这样的 IDE 中,放置花括号实际上会创建一个带有“下拉”箭头的可视块,只需单击一下即可完全隐藏部分代码。它有助于代码组织。我在使用大量 CSS 创建 HTML 元素时使用它。由于它不影响代码执行,因此非常有用。