CoffeeScript and JavaScript (ECMAScript) both have operators in
and of
. Each language use them for more than one purpose. There is not a single case where the same operator can be used for the same purpose in both languages.
var hasFoo = 'foo' of object
var hasFoo = 'foo' in object;
object = { ... }
for key, value of object
console.log("key %o has value %o", key, value);
var object = { ... };
for (var key in object) {
var value = x[key];
console.log("key %o has value %o", key, value);
}
array = [...]
for entry in array
console.log("value is %o", entry.value)
var array = [...]
for (var entry of array) {
console.log("value is %o", value);
})
iterator = ...
while entry = iterator.next() && !entry.done
console.log("value is %o", entry.value)
var iterator = ...;
for (var value of iterator) {
console.log("value is %o", value);
}