4 ms·
But CoffeeScript does introduce new semantics. To name a few: • a classical object model, complete with super() • forced strict equality • loop-local index v
by chc 14y ago
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?