Why aren’t ◎ܫ◎ and ☺ valid JavaScript variable names?

I noticed that in Internet Explorer (but, unfortunately, not in the other browsers I tested), you can use some Unicode variable names. This made my day, and I was absolutely delighted that I could write fun Unicode-laden code like this:

var ктоείναι草泥马 = "You dirty horse.",
    happy☺n☺mat☺p☺eia = ":)Yay!",
    ಠ_ಠ = "emoticon";

alert(ктоείναι草泥马 + happy☺n☺mat☺p☺eia + ಠ_ಠ);

For some reason, though, ◎ܫ◎, ♨_♨ and are not valid variable names.

Why do ಠ_ಠ and 草泥马 work, but ◎ܫ◎, ♨_♨ and don’t?

EDIT: Test it out in your browser on JSFiddle. I’ve tested it in Internet Explorer 9, Chrome, Firefox, and Opera. So far, it seems to only work in Internet Explorer 9. (I don’t know about Internet Explorer 8 and below.) Let me know if it works in another browser.

4 s
4

Leave a Comment