Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   JS.next(стандарты, фичи, движки) (https://javascript.ru/forum/offtopic/50248-js-next-standarty-fichi-dvizhki.html)

melky 13.01.2015 11:47

Цитата:

Сообщение от Safort (Сообщение 351150)

Цитата:

We’ve decided that because of our shared goals and philosophy it makes sense to merge the two projects in an effort to build a better transpiler.

So what will this mean for both projects?

The esnext team will start work on 6to5 bringing their skillset and experience to make it faster and more spec-compliant. On our end, we will be migrating people from esnext to 6to5—we’ve already ported all of the esnext tests to 6to5 to ensure nothing will break.
немного не понял

а зачем тогда 2 проекта, и вообще 6to5, если можно всё слить в esnext и всё?


тогда и 7to5 не будет нужен - esnext же ("следующая")

Safort 13.01.2015 11:57

kobezzza,
Цитата:

Единственно, название они не оч удачно выбрали, т.к. со временем, когда ES6 станет стандартом, а ES7 будет внедрятся, понадобится 7to6
Согласен, как узнал про этот транслятор тоже об этом подумал.

nerv_ 14.01.2015 14:25

Сейчас открыл страницу Indexed collections. Получается, что в языке будут типизированные массивы, но, при этом, нет этих же простых типов, например:
number{Number<Int8>}
number{Number<Int16>}

Вам не кажется это глупостью? :)

kobezzza 14.01.2015 14:51

Цитата:

Вам не кажется это глупостью?
Кажется, как и отсутствие структур (т.к. пользоваться числовыми массивами не шибко удобно), но в ES7 всё должны добавить.

Как то так будет

http://wiki.ecmascript.org/doku.php?...bjects&s=typed

Вангую, что 'use asm' станет частью ES7/8, а ля @unsafe в Rust и можно будет писать адовые числодробилки на JS :)

kobezzza 16.01.2015 14:17

Сегодня пришёл к вроде бы очевидному трюку, использования let и анонимного блока, для замены самовызываемой анонимной стрелочной функции без параметров, т.е.

// Было
(() => {
    var foo = this.someValue;
    ...
})();

// Стало
{
    let foo = this.someValue;
    ...
}


Кажется, что вариант с блоком покрасивше (хотя менее надёжен и универсален).

cyber 16.01.2015 14:32

kobezzza, для тех кто пока далековат от es6 поясни плиз код)

kobezzza 16.01.2015 14:40

Цитата:

kobezzza, для тех кто пока далековат от es6 поясни плиз код)
Ну, иногда бывает нужно создать локальную область видимости с передачей родительского контекста, т.е.

(function () {
    var foo = this.someValue;
    ...
}).call(this);


В ES6 можно упростить до

(() => {
    var foo = this.someValue;
    ...
})();


А используя ES6 и анонимный блок, можно упростить ещё (только все переменные должны декларироваться через let)

{
    let foo = this.someValue;
    ...
}


Анонимные блоки в JS были с самого начала, но без let в них смысла особо не было, а теперь есть, хотя разумеется вариант с функцией более универсальный, т.к. можно передавать параметры, возвращать значение и использовать в качестве литерала (для передачи в другую функцию и т.д.).

Octane 16.01.2015 15:15

Можно еще так:
let (foo) {
    foo = this.someValue;
    …
}

cyber 16.01.2015 15:25

Цитата:

Сообщение от kobezzza
Анонимные блоки в JS были с самого начала, но без let в них смысла особо не было, а теперь есть, хотя разумеется вариант с функцией более универсальный, т.к. можно передавать параметры, возвращать значение и использовать в качестве литерала (для передачи в другую функцию и т.д.).

Т.е я могу писать код как в анонимной функцие?
{
    let a = 5, b = 6;
    let  s = a + b;
    console.log(s);
}

kobezzza 16.01.2015 15:28

Цитата:

Сообщение от Octane (Сообщение 351712)
Можно еще так:
let (foo) {
    foo = this.someValue;
    …
}

Круто! Не знал про такой синтаксис :)

Цитата:

Т.е я могу писать код как в анонимной функцие?
Угу.


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