Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

But CoffeeScript does introduce new semantics. To name a few:

• a classical object model, complete with super()

• forced strict equality

• loop-local index variables (gets around the setTimeout(function() {console.log(i)}, 100) problem)

• all variables local unless explicitly declared otherwise

• CoffeeScript's splat arrays are totally different from JavaScript's arguments object

• list comprehensions (whether this is a semantic or syntactic change is debatable, I suppose, but the same could be said for basic OO)

• everything is an expression

The last one is a biggie that completely changes the meaning of many seemingly identical blocks of code. If that isn't a semantic change, what is?



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: