A friend wrote some code for me, and there was one file with a weird syntax error in it. After a bit of hunting, I narrowed it down to this section of code, which should reproduce the error:
var say = functіon(message) { alert(message); return message; }; say(say("Goodbye!"));
When I run this, I see an error in the Internet Explorer console that says SCRIPT1004: Expected ';'
. I don't see a semicolon missing anywhere, and I can't imagine where it wants me to put one.
Where does it expect a semicolon and why does it expect a semicolon there?
The Missing Semicolon Before Statement error is a specific type of SyntaxError object.
JavaScript does not require semicolons (other than the one exception you saw earlier). This is because JavaScript is clever and it can add the semicolons where needed automatically. This happens behind the scenes and you will not notice it. This process is called Automatic Semicolon Insertion (ASI).
Semicolons are optional in JavaScript - TypeScript is a superset of JavaScript, ergo, semicolons are optional in TypeScript. That said, you will still run into issues with ASI like you would with JavaScript if you don't know where semicolons will be automatically placed.
A semicolon is required When two statements are on the same line. So if you're going to put two statements on the same line, you have to separate them with a semicolon. The semicolon is only obligatory when you have two or more statements on the same line.
Your issue is the fact that the i
in function is the unicode character i
. If you change it to a 'normal' i
it should just work.
But now I'm wondering how the hack :) did you get an unicode character there :P
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With