Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   CoffeeScript vs ES6 (https://javascript.ru/forum/offtopic/58349-coffeescript-vs-es6.html)

FINoM 17.09.2015 17:29

Цитата:

Сообщение от ТОТ_САМЫЙ
Есть хоть одно преимущество ES6 над Coffeescript? ответ: НЕТ!

Async functions, не? for..of loops не? let, const не?

FINoM 17.09.2015 17:31

Запишите туда модули, декраторы и полный контроль над областью видимости.

newtimebigtime 17.09.2015 17:38

Цитата:

Сообщение от FINoM
и полный контроль над областью видимости.

это что такое?

Erolast 17.09.2015 17:41

Цитата:

async functions, декраторы
Это не ES6, это еще разрабатываемые фичи.
Аналог for of там есть.

Lemme 17.09.2015 17:48

Цитата:

newtimebigtime - это foo.
эт ясно, его можно отличить от любого;)
Цитата:

Выходной код? Sourcemaps в помощь.
Не совсем об этом говорил, я говорил о чистоте и размере кода (без транслятора).

Т.е этот код 123byte
class MyClass {
  constructor(myArg) {
    this.myProperty = myArg;
  }
  init() {
    console.log(this.myProperty);
  }
}


А если прогнать его через babel, то 1 012 bytes

Lemme 17.09.2015 17:56

Цитата:

это что такое?
for (var i = 0; i < 5; i++){
	//TODO
}
console.log(i); //5

for (let i = 0; i < 5; i++){
	//TODO
}
console.log(i); // ReferenceError: i is not defined

FINoM 17.09.2015 18:00

Цитата:

Сообщение от Erolast
Это не ES6, это еще разрабатываемые фичи.

Да, разрабатываемые. При этом, Кофе не развивается.

newtimebigtime 17.09.2015 18:01

Lemme,
Я не понял, в чем заключается контроль? В первом случае, ты можешь продолжить итерацию с текущего состояния, а можешь обнулить переменную, можешь ее удалить -- все под твоим контролем. Во втором случае никакого контроля нет, ты не можешь ничего сделать, поведение предопределено. В чем контроль?

FINoM 17.09.2015 18:02

Цитата:

Сообщение от Lemme
А если прогнать его через babel, то 1 012 bytes

https://babeljs.io/docs/usage/runtime/

FINoM 17.09.2015 18:04

newtimebigtime, другими словами, ты не можешь определить переменную для использования во внутренней функции:
function a() {
  var x = 1;
  function b() {
    var x = 2;
  }
}

Плюс, ты не можешь использовать let в циклах и условных блоках.


Часовой пояс GMT +3, время: 17:02.