为什么允许独立代码块?

Joh*_*don 3 javascript

我最近被一个虫子咬了。我有这样的代码:

if (x == 1)
{
    do_stuff();
}
else
{
    do_other_stuff();
}
Run Code Online (Sandbox Code Playgroud)

但是,我错误地省略了单词else,因此始终执行第二个代码块。

允许此类独立代码块的基本原理是什么?我想有一个很好的理由。

Tom*_* O. 5

块语句在其他语言中常被称为复合语句。它允许您使用多个语句,而 JavaScript 只需要一个语句。将语句组合成块是 JavaScript 中的常见做法。使用空语句可能会出现相反的行为,您不提供任何语句,尽管需要一个。

该块由一对大括号分隔,并且可以选择标记(这意味着它可以与 break 或 continue 语句一起使用)

此外,它允许通过使用letconst

var x = 'Function scope'; {
  let x = 'Block Scope';
  console.log(x);
}

console.log(x);
Run Code Online (Sandbox Code Playgroud)

参考:https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/block

  • 这确实是一个副作用...... `let` 和 `const` 是最近添加的语言,而 `{}` 块不是 (2认同)