So pragmatically, I’ve got a quick and dirty answer to what I’m looking for here. But why isn’t using that a good idea? Why can’t I find any formal documentation of it? Is it not part of the spec and standard? Is it not widely supported? Is it just because minification could break code using that syntax?
If you could point me to more comprehensive docs of the feature, I’d appreciate that. What defines the contents of the if block? Is it indentation based? If it was, that’d be interesting.
On another note, is there something similar to this syntax for if statements in PHP? I can swear that I’ve seen them being used here and there, but I can’t find any examples off hand. Am I just crazy and it actually doesn’t exist in PHP, or can those types of if blocks be used in PHP? Does such an if block support having an else as well, both in JS and PHP?
It seems that there’s an indentation based one as well as a single-line based syntax as well. What can you tell me about the following?
if(condition) do_some_statement();
Thanks
Because it’s hard to maintain.
Of course it is, see §12.5 – The
ifStatement and §12 – Statements in the spec. The body of anifis a Statement. One kind of Statement is Block (§12.1), which allows a list of statements to be treated as one statement, but there are many other kinds of statements.Universally.
A good minifier won’t break that syntax. (A good minifier will make use of it, in fact.)
The body of an
ifstatement consists only of the statement following it, indentation has no significance in JavaScript. So all of these are equivalent:In the above, only the call to
baris conditional onfoo;charlieis called regardless.That’s why we have Block, the Statement that introduces a list of statements to be treated as a unit (a block, you might say 🙂 ):
Indentation is important for humans, though, so keeping consistent indentation is a good idea. The first example in each of the above is probably clearest (of the ones listed) for us mere mortals. 🙂
I’m not a big PHP-head, but it looks identical, defined in Control Structures –
if. There are examples with and without{}. (There’s also a different, alternative syntax I won’t go into here.)Yes,
ifsupportselseboth with and without blocks.