Javascript if语句的第4行是从第2行开始的吗?

Javascript if语句的第4行是从第2行开始的吗?,javascript,if-statement,chaining,Javascript,If Statement,Chaining,我试图通过阅读OPC来学习链接以及如何自己做链接。我还是很困。在学习这一点的时候,我遇到了一点错误处理,这让我大吃一惊。从缩进来看,第4行似乎不是从第2行开始的if语句的一部分。我是否正确地假设两行if语句不需要大括号,并且解释器假设当缺少大括号时,只有直接执行if语句的行是同一if语句的一部分;因此,第四行不是以下块中if语句的一部分: set: function (mystr, func) { if (!this[mystr]) throw n

我试图通过阅读OPC来学习链接以及如何自己做链接。我还是很困。在学习这一点的时候,我遇到了一点错误处理,这让我大吃一惊。从缩进来看,第4行似乎不是从第2行开始的if语句的一部分。我是否正确地假设两行if语句不需要大括号,并且解释器假设当缺少大括号时,只有直接执行if语句的行是同一if语句的一部分;因此,第四行不是以下块中if语句的一部分:

    set: function (mystr, func) {
        if (!this[mystr])
            throw new Error("unknown hook " + mystr);
        this[mystr] = func;
    },

通常不是行,而是if语句后面的语句被认为是属于它的。

通常不是行,而是if语句后面的语句被认为是属于它的。

只有当块内有多个语句时,才需要大括号。如果不使用大括号,下一条语句(single)将在块内,以下语句将在块外

if (something)
    StatementIfTrue();
StatementEitherWay();

if (something)
{
    StatementIfTrue1();
    StatementIfTrue2();
}
StatementEitherWay();

if (something) StatementIfTrue(); StatementEitherWay();

只有当块中有多个语句时,才需要大括号。如果不使用大括号,下一条语句(single)将在块内,以下语句将在块外

if (something)
    StatementIfTrue();
StatementEitherWay();

if (something)
{
    StatementIfTrue1();
    StatementIfTrue2();
}
StatementEitherWay();

if (something) StatementIfTrue(); StatementEitherWay();

是,第4行不在if块中


如果没有大括号,则只有紧跟在if之后的下一条语句将位于if块中。

是,第4行不在if块中


如果没有大括号,则只有紧跟在
if
之后的下一条语句才会出现在if块中。

这不是问题的最佳示例-因为抛出错误将意味着即使第4行在
if
块中也不会执行。(事实并非如此。)@AndrzejDoyle一石二鸟。感谢您的评论。对于您的问题,这不是最好的示例,因为抛出错误意味着即使第4行在
if
块中,也不会执行它。(事实并非如此。)@AndrzejDoyle一石二鸟。谢谢你的评论,谢谢。所以基本上所有的东西都在下一个分号之前。@Wolfpack'08。分号在JS中是可选的。没有大括号,这是下一个ON*语句。对不起,这是一个拼写错误。应该是的,谢谢。所以基本上所有的东西都在下一个分号之前。@Wolfpack'08。分号在JS中是可选的。没有大括号,这是下一个ON*语句。对不起,这是一个拼写错误。应该是的。谢谢你的回答。非常尊重这个例子。谢谢你的回答。对榜样的疯狂尊重。