如何解决有/没有大括号有什么区别?
我看到一个源代码并注意到 a.name
周围有一个“额外的”大括号,如下所示,尽管我通常看到的常见情况是没有大括号。
我想知道这在某些特定情况下的工作方式有所不同,但我尝试过并且结果相同,或者某种约定。有人知道区别吗?
带大括号
array.forEach((item,index) => {
let a = {
id: index;
};
{
a.name = 'test';
}
}
没有大括号
array.forEach((item,index) => {
let a = {
id: index;
};
a.name = 'test';
}
解决方法
在这种情况下,两个示例是相同的,但是在其他情况下有两种用途。
一种用途是强制使用 let
声明的变量的范围。 let
变量是“块范围的”,如果你在这样的“块”中声明它们,那么它们的范围将是该块。例如:
let cookies = "Cookies are nice";
console.log(cookies);// "Cookies are nice"
但是
{
let cookies = "Cookies are nice";
}
console.log(cookies);// Reference error
它们的另一个用途就是强制自动缩进在你的 IDE 中有一个额外的缩进......例如,大多数 IDE 不会自动缩进 PHP 代码,一些程序员会选择使用这些块来伪造将 IDE 设置为自动缩进。
例如:
<?php
//the code in here won't be auto-indented
?>
但是
<?php
{
//if I do this,then it will be auto-indented.
}
?>
希望这能回答您的问题。 :)
编辑:实际上,我相信在引用对象时这些括号还有另一个用途。我已经看到它们像 { nameOfObject }
代替 nameOfObject
一样使用,但我不知道它们在这些情况下究竟做了什么,也不能就此事发表意见。我敢打赌这里的其他人可以回答这个问题! (如果您知道,请随时发表评论分享原因!)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。