kobezzza |
10.10.2014 09:33 |
Цитата:
let, как по мне - вообще бред, я даже представить не могу такую конструкцию которя одновременно будет и не говнокодом и там будет нужен let.
|
:D
Как по мне функциональная область видимости - это изначальный феил и поэтому let для меня оч важная штука, которую я юзаю просто повсеместно. Например в Snakeskin тоже блочная область видимости у переменных.
- template foo()
- for var i = 0; i < 10; i++
? console.log(i) // 0, 1, 2 ...
? console.log(i) /// Error, i is not defined
Вообще я для себя сделал такое правило: var для глобальных переменных и локальных переменных функций высшего уровня.
Цитата:
я даже представить не могу такую конструкцию которя одновременно будет и не говнокодом и там будет нужен let.
|
for (let i = 0; i < 10; i++) {
...
}
for (let i = 0; i < 10; i++) {
let someVal; // использование с var в данном примере приведёт к ошибке
// придётся писаться var someVal = void 0;
if (...) {
someVal = true;
}
if (someVal ) {
...
}
}
и т.д.
Цитата:
Сообщение от Safort
(Сообщение 334543)
kobezzza,
Да что же это такое?! Ещё один транслятор, который поддерживает многие крутые плюхи из ES6, но не может let! Как так вообще? Значит, классы они осилили, а какой-то let - нет?
|
Слоупоки, но тебе никто не мешает:
1) Таки завести es6transpiler ||
2) Прикрутить https://github.com/olov/defs к своему транслятору.
Цитата:
А в js нет блочной области видимиости, как тут let сделаешь?
|
Молча :)
Цитата:
Инициализация функии дело очень затртаное, вангую что не рационально делать такие хаки, вот и не сделали.
|
Никто так не делает, а юзают статический анализ и добавление префиксов.
Цитата:
Да, будет лишняя переменная и грязный код. Но он итак грязный.
|
Код, который не предназначен для ручного редактирования человеком (а результат работы транслятора именно такой код) может быть любым, лишь бы он не бажил и не тормозил :)
|