re: Using semicolons with block structured grammars Most block structured grammars require an explicit "statement terminator" token. The older Algol and PL1 grammars, and the more modern C/C++ and Java grammars, use a semicolon to demarcate "end-of-statement" (i.e., to delimit each statement). re: Abusing semicolons with javascript After studying "at the feet" of the world-famous javascript guru, Danny Goodman, for several years, I absorbed some of his professional style preferences. One of these is the sparing use of unneeded characters that weigh down a web page, including a profusion of unneeded semicolon tokens. Ref.: "JavaScript Bible", Gold Edition, 0764547186. As we know, javascript is a real-time scripting language. Each script must be downloaded from server to user PC before it can execute. The javascript scripting grammar uses either "an embedded semicolon" token, or the end-of-line token, to demarcate an "end-of-statement" condition. The creators of javascript wisely provided this syntax for a very good reason, viz., to minimize the overuse/abuse of unneeded semicolon tokens. When coding javascript, technically, when ending a statement with both a semicolon token and an end-of-line token, two separate javascript statements are created in the parse tree, namely, the first statement, and also an empty null statement found between the semicolon token and the end-of-line token. The creators of javascript included the end-of-line statement terminator for several very good reasons: a. With an Internet language, the file must be downloaded. Therefore, we need to make the file as small as possible. Therefore, we must eliminate all unneeded trailing characters from each line. This includes trailing semicolons and spaces. b. The programmer must be aware of the fact that they are creating real-time code, and, therefore, they must respect the need to minimize file size in every way possible, that does not reduce the execution quality of the web page. re: Invalid reasons to use semicolons in javascript code 1. and 2.: Cf. "I don't know -- And I don't care." 1. It demonstrates lack of understanding and ineptness by the coder. 2. It demonstrates indifference by the coder. 3. It demonstrates lack of respect for users of the web page. 4. It demonstrates rank amateurish coding style by the coder. 5. It provides ample evidence to javascript professionals that the coder falls into one or more categories 1./2./3./4. And they would never "Hire a boy to do a man's job". Would you? re: A valid, very good reason to use semicolons in javascript code To obfuscate the javascript source code to the casual observer. a. Create the entire javascript program without any embedded CR/LFs, and only embed semicolons between statements. b. Then, if a curious user views the javascript source code, they will see only an unstructured "mess", and will have difficulty in understanding, and "stealing" source code.