Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
.slice 0, 10 вместо [0...10], alert j for j in [1..5]
alert i for i in [0..2]
(function() {
var i, j, _i, _len, _ref;
for (i = 0; i <= 2; i++) {
_ref = [1, 2, 3, 4, 5](alert(i));
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
j = _ref[_i];
alert(j);
}
}
}).call(this);
for(j=1; j<=5; j++){
alert(j);
for(i=0; i<=2; i++){
alert(i);
}
}
for i in [1..5]
alert i
for i in [0..2]
alert i
var i;
for (i = 1; i <= 5; i++) {
alert(i);
for (i = 0; i <= 2; i++) {
alert(i);
}
}
alert j for j in [1..5]
return if smth < 0
if smth < 0 then return
if smth < 0
smth = 0
foo = bar + 100500
return
Во-вторых то, за что я люблю coffeescript — это классы, и наследованиеВы так говорите, как будто в JS нет классов и наследования.
(function(x) {
})(arr.x)((x) ->)(arr.x)
do (x = arr.x) ->К примеру инструкция for...of, сейчас носит более общий характер нежели это нужно:
[value for key, value of [1,2,3]]
На выходе мы получим следующее извращенство:
var key, value; alert([
[list1, list2 ...] #[1,2,3,4,5,6]
[list1..., list2...]
[value for i, value of ['a', 'b', 'c'][0...2]] # a, b
['a', 'b', 'c'][0...2]
foo = (value for i, value of ['a', 'b', 'c'][0...2])
Во-первых не нужно писать of [arr], нужно in [arr]
Во вторых — смысла конструкции вообще не понял — может проще сразу было
В данном случае, для получение значений массива использовать нужно именно of, а не in.
result_in = ( val for val in ['a', 'b', 'c'][0...2])
result_of = ( val for key, val of ['a', 'b', 'c'][0...2])
var key, result_in, result_of, val;
result_in = (function() {
var _i, _len, _ref, _results;
_ref = ['a', 'b', 'c'].slice(0, 2);
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
val = _ref[_i];
_results.push(val);
}
return _results;
})();
result_of = (function() {
var _ref, _results;
_ref = ['a', 'b', 'c'].slice(0, 2);
_results = [];
for (key in _ref) {
val = _ref[key];
_results.push(val);
}
return _results;
})();
alert i for i in [1..10] when i % 2 is 0
for i in [1..10] when not( i % 2) then console.log i
expr = /foo*/g;
alert "#{array[0]} : #{expr.lastIndex}" until (array = expr.exec('foofoo')) is null
expr = /foo/g
console.log "#{array[0]} : #{expr.lastIndex}" while array = expr.exec 'foofoo'
CoffeeScript: Подробное руководство по циклам