4

I was reading the article on Javascript Objects (http://javascriptissexy.com/javascript-objects-in-detail/), so I copy-pasted the following code into my Notepad++ and ran it in Chrome(Version 55.0.2883.87 m). Upon opening the console, console reports SyntaxError. Does someone have an idea why? Everything seems ok.

// We have been using dot notation so far in the examples above, here is another example again:​
​var book = {title: "Ways to Go", pages: 280, bookMark1:"Page 20"};
​
​// To access the properties of the book object with dot notation, you do this:​
console.log(book.title); // Ways to Go​
console.log(book.pages); // 280
urosc
  • 1,938
  • 3
  • 24
  • 33
  • You ran it where? In a browser (which one), in nodejs, in something else entirely? – UnholySheep Dec 30 '16 at 16:32
  • 1
    When I copied & paste your code to the console, I saw 2 invisible characters - That's the reason – Alon Eitan Dec 30 '16 at 16:34
  • 1
    Copy/paste can pick up invisible characters that will cause those errors. Just type the code in by hand. – Pointy Dec 30 '16 at 16:34
  • `var book = {title: "Ways to Go", pages: 280, bookMark1:"Page 20"}; console.log(book.title); console.log(book.pages); ` Should work (without the invisible characters) – Alon Eitan Dec 30 '16 at 16:35
  • Can you explain invisible characters, is it because I copy-pasted the code. How can I test it and find invisible characters in the code ? – urosc Dec 30 '16 at 16:36
  • Back space the var –  Dec 30 '16 at 16:36
  • 1
    Open developer tools (Ctrl+Shift+I) and copy the code in your question in the console tab. Hit the Enter key, and then hit the `up` arrow key, and you'll see in the code red dots – Alon Eitan Dec 30 '16 at 16:37

1 Answers1

9

If you copy everything you just pasted and write it in the console, you would see that there are some unicode characters (\u200b) in your code which are actually the Invalid or unexpected token in the error that you are getting, you don't see them because they are zero-width spaced, so just remove them and the code would run perfectly as shown below

// We have been using dot notation so far in the examples above, here is another example again:
var book = {title: "Ways to Go", pages: 280, bookMark1:"Page 20"};

// To access the properties of the book object with dot notation, you do this:
console.log(book.title); // Ways to Go
console.log(book.pages); // 280

You can find more about the zero width space character here: http://www.fileformat.info/info/unicode/char/200b/index.htm