5 ms·
Brendan Eich covered this subject at O'Reilly Fluent conference in 2012: http://youtu.be/Rj49rmc01Hs?t=5m7s http://youtu.be/Rj49rmc01Hs?t=5m7s
by liviu 13y ago
Brendan Eich covered this subject at O'Reilly Fluent conference in 2012:
http://youtu.be/Rj49rmc01Hs?t=5m7s http://youtu.be/Rj49rmc01Hs?t=5m7s
- MichaelGG 13y agoIf by cover you mean he essentially shrugs and says "it was the 90s" and moves on to ES6.
- skrebbel 13y agoWhich seems a pretty appropriate reaction, no? :-)
- 1stop 13y agoSeems he took the Wat talk a little personally, but I'm not sure why he defends {} + [] by saying the first { is a statement... wat?
- _mhr_ 13y agoIt's automating semicolon insertion. The browser translates {} + [] into {}; + [], so + [] === 0 too. {}; is undefined.
- codeflo 13y agoBeing pedantic: it's NOT semicolon insertion. Your actual point is correct, the {} is an empty block statement, and the +[] is a separate expression statement. It's equivalent to "{} 0". However, semicolon insertion is only triggered when there's a newline at a position where there would otherwise be a syntax error. Here, neither is the case: blocks don't have to be terminated by semicolon (so no syntax error), and there's no newline in the source code!
- drostie 13y agoIt's because they wanted to say both: if (a) b; and if (a) { b; c; } which tends to make you think of curly braces as a syntactic feature which can appear anywhere, turning many lines of code into one line of code. If you think that way then these should possibly also be valid: {b; c} {b} {} but, since JS scope is function-oriented and in other places (e.g. functions) the braces are ultimately needed anyways, even for one-liners, it seems like this was a stupid choice and we should have just rejected the form: if (a) b; and then the reuse of {} for lightweight (if non-robust) hashmaps would perhaps be unambiguous again.
- kbenson 13y agoWhich is exactly what Perl did, but to alleviate the clumsiness of single statement if conditionals they added a post-conditional if statement of the form STATEMENT if CONDITION; (which has the benefit of being how some people express simple conditionals in real life. "Go left if you see the blue house.")
- celebril 13y agoBrendan Eich is a homophobe and whoever links to his videos are complicit in his bigotry. All his opinions should be discarded.
- archagon 13y agoNobody's opinions should be discarded based on their behavior. Otherwise, we'd have a scant few scientists, artists, and thinkers in history actually worth discussing. (Also, people who link to him are complicit? Are you serious?)
- tsotha 13y agoYou have no idea whether he's a homophobe or not, and clearly when the subject is Javascript his opinions should be considered very carefully.