但为什么使用它不是一个好主意呢?
因为它很难维护。
为什么我找不到它的正式文档?它不是规范和标准的一部分吗?
当然是这样,看§12.5 - 的if陈述 and §12 - 声明在规格中。一个的身体if
is a 陈述。一种陈述 is Block (§12.1),它允许将一系列语句视为一个语句,但还有许多其他类型的语句。
不是得到广泛支持吗?
普遍。
仅仅是因为缩小可能会破坏使用该语法的代码吗?
一个好的缩小器不会破坏该语法。 (一个好的压缩器将使use事实上,其中。)
if 块的内容是什么定义的?它是基于缩进的吗?
一个的身体if
语句仅由其后面的语句组成,缩进在 JavaScript 中没有任何意义。所以所有这些都是等价的:
if (foo)
bar();
charlie();
if (foo) bar();
charlie();
if (foo)
bar(); charlie();
if (foo)
bar();
charlie();
在上文中,only打电话给bar
是有条件的foo
; charlie
被调用不管。
这就是为什么我们有Block, the 陈述它引入了一个被视为一个单元的语句列表(一个块,你可能会说:-)):
if (foo) {
bar();
}
charlie();
if (foo) { bar(); }
charlie();
if (foo) {
bar(); } charlie();
if (foo)
{ bar(); }
charlie();
不过,缩进对人类很重要,因此保持一致的缩进是个好主意。对于我们凡人来说,上面每个例子中的第一个例子可能是最清楚的(列出的例子中)。 :-)
另一方面,是否有类似于此语法的内容if
PHP 中的语句?
我不是 PHP 的大佬,但它看起来是相同的,定义在控制结构 -if。有和没有的例子{}
。 (还有一种不同的替代语法,我不会在这里讨论。)
是否有这样一个if
块支撑有一个else
还有,JS 和 PHP 都可以吗?
Yes, if
支持else
有和没有块。