刚打开一个客户端的 JavaScript 文件,第一行大概是这样的:
{
var s_account="blog";
}
我不明白。在我的经验中,花括号通常用于包装一个函数...
function welcome(){ ...
...或者一个jsonJavaScript对象
var attributes = { this : "that...
有人能告诉我为什么花括号前后没有文字吗?它是用来做什么的?
刚打开一个客户端的 JavaScript 文件,第一行大概是这样的:
{
var s_account="blog";
}
我不明白。在我的经验中,花括号通常用于包装一个函数...
function welcome(){ ...
...或者一个jsonJavaScript对象
var attributes = { this : "that...
有人能告诉我为什么花括号前后没有文字吗?它是用来做什么的?
这是一个块级元素,如果没有标签,它完全没有意义:
block: {
var s_account="blog";
console.log("executed");
break block;
console.log("not executed");
}
break
吗? - gen_Eric在我看来,这样做的唯一合理原因是作为一种组织技巧。
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();
};
}
此外,大多数集成开发环境将允许您折叠“私有成员”块,并将其从视线中移除。
{
var foo = "bar";
}
console.log(foo);
但是这会抛出一个ReferenceError
,因为foo
的作用域限制在块级中:
{
let foo = "bar";
}
console.log(foo);
Esailija指出,如果它被标记并且使用break
,那么break会提前退出该块。
块语句最常见的用途是将与流程控制语句(如if
和for
)相关联的语句分组在一起。在这个相当典型的if
中:
if (something) {
doThis();
doThat();
}
...{}
不是if
语句的一部分(你可以在不使用{}
的情况下写if
),它们是一个与if
附加的块语句。
let foo = "bar";
示例仍然会输出 bar
。 - Djavelet
的方式出现问题时,它才会记录 "bar"
。我不知道有哪些实现方式是有问题的。 (IE9 对 let
的实现已经过时,无法处理与 for
循环相关的重要用例,但 IE9 不允许在块中使用 let
,因此它不会记录上面的 "bar"
。[我不确定,所以我试了一下。 :-) ]) - T.J. Crowderconsole.log
记录了那个 var
扇脸 - Djave它被称为块语句。它可以将表达式分组。通常与控制结构(如if
和while
)一起使用,但也可以单独使用。
由于JavaScript没有块级作用域,代码在同一个作用域中运行(就像{}
不存在一样)。
例如:
{
var s_account="blog";
}
console.log(s_account);
那很好运作。
var s_account="blog";
快速添加。 在一些IDE(集成开发环境)中,例如Visual Code,放置花括号实际上会创建一个带有“下拉”箭头的可视块,使您可以通过单击完全隐藏代码的一部分。 它有助于代码组织。 我在创建具有大量CSS的HTML元素时使用它。 由于它不影响代码执行,因此非常有用。
s_account
的作用域。 - go-oleg