10.10.2014, 02:37
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
Цитата:
|
l-liava-l,
ну вот, чем создание новой переменной не вариант? Да, будет лишняя переменная и грязный код. Но он итак грязный.
|
Говорюж, многие так и делают)
Но есть более важные вещи и на них стоит обратить внимание в первую очередь: начиная от шума {} и никому ненужного null заканчивая тем что код не пишет сам себя.
let, как по мне - вообще бред, я даже представить не могу такую конструкцию которя одновременно будет и не говнокодом и там будет нужен let.
Классы... не пишу на кофе везде исключительно из-за них, кажуться неповоротливыми
__________________
Научу себя плохому
Последний раз редактировалось l-liava-l, 10.10.2014 в 02:49.
|
|
10.10.2014, 09:33
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
let, как по мне - вообще бред, я даже представить не могу такую конструкцию которя одновременно будет и не говнокодом и там будет нужен let.
|
Как по мне функциональная область видимости - это изначальный феил и поэтому 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
|
kobezzza,
Да что же это такое?! Ещё один транслятор, который поддерживает многие крутые плюхи из ES6, но не может let! Как так вообще? Значит, классы они осилили, а какой-то let - нет?
|
Слоупоки, но тебе никто не мешает:
1) Таки завести es6transpiler ||
2) Прикрутить https://github.com/olov/defs к своему транслятору.
Цитата:
|
А в js нет блочной области видимиости, как тут let сделаешь?
|
Молча
Цитата:
|
Инициализация функии дело очень затртаное, вангую что не рационально делать такие хаки, вот и не сделали.
|
Никто так не делает, а юзают статический анализ и добавление префиксов.
Цитата:
|
Да, будет лишняя переменная и грязный код. Но он итак грязный.
|
Код, который не предназначен для ручного редактирования человеком (а результат работы транслятора именно такой код) может быть любым, лишь бы он не бажил и не тормозил
Последний раз редактировалось kobezzza, 10.10.2014 в 10:19.
|
|
10.10.2014, 10:47
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
kobezzza,
Цитата:
|
1) Таки завести es6transpiler ||
|
Так я хотел, но оно не завелось из-за бага(ты ещё про него в ишью написал)
Спасибо, сейчас посмотрю что за зверь такой)
Но в моём случае было бы не плохо, если бы Traceur просто не трогал let, т.к. поддержка старых браузеров мне не нужна, а в новых это всё уже есть.
|
|
10.10.2014, 10:56
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
Так я хотел, но оно не завелось из-за бага(ты ещё про него в ишью написал)
|
Ну я же завёл Кстати, termi писал, что установка Cygwin также пофиксит баг.
|
|
10.10.2014, 11:32
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
kobezzza,
Ну а я нет ;(
Цитата:
|
Кстати, termi писал, что установка Cygwin также пофиксит баг.
|
Ок, дам ему второй шанс)
|
|
10.10.2014, 12:21
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
Потом описал возможные решения, как рациональное так и нет. вредный.
Цитата:
|
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 ) {
...
}
}
|
Цитата:
|
которя одновременно будет и не говнокодом и там будет нужен let.
|
Использование кучи циклов в одной функции не айс, это плохо. (имхо) нид выносить в отдельные. Поэтому говнокод.
Если дело в каких то сложных вычислениях, где для каждого цикла функцию новую поднимать напряжно (не могу представить), то тут конечно пригодится блочная область видимости (возможно, ведь тоже какие то ресурсы тратятся), да и не жизненно мне кажется, пока не сталкивался.
Короче лично я никогда не испытвал надобности в let, но опыта пока мало так что посмотрим)
__________________
Научу себя плохому
|
|
10.10.2014, 12:26
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от l-liava-l
|
Использование кучи циклов в одной функции не айс
|
Мсье внезапно стал профессор?
Сообщение от l-liava-l
|
Поэтому говнокод.
|
Эка нынче пошли критерии говнокода, 2 цикла и сразу говнокод.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
10.10.2014, 12:35
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
l-liava-l, сразу видно что ты не писал никогда никаких парсеров или различных плясок с графами / векторами
Да и вообще, var был архитектурной ошибкой JS, и let был введён как костыль. Обрати внимание, что const тоже имеет блочную область видимости. А в LLJS вообще только блочная область видимости.
Последний раз редактировалось kobezzza, 10.10.2014 в 12:38.
|
|
10.10.2014, 13:55
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
Цитата:
|
Эка нынче пошли критерии говнокода, 2 цикла и сразу говнокод.
|
На 2 цикла можно и var написать, а 10 циклов в одной функции не круто (пока не столкнулся с потребностью)
Цитата:
|
Мсье внезапно стал профессор?
|
Тебе что в определенный момент справку выдали? Это моя точка зрения, возможно ошибочная, пытаемся вот разобраться. бомбануло
Цитата:
|
l-liava-l, сразу видно что ты не писал никогда никаких парсеров или различных плясок с графами / векторами
|
Парсеры писал, плясок с графами / векторами нет. (хотя если под вектором ты имеешь ввиду array то писал).
Там же обычно вложенности, если не вложенность то это уже отдельная операция и ее можно вынести в другую функцию.
Цитата:
|
var был архитектурной ошибкой JS
|
Цитата:
|
Обрати внимание, что const тоже имеет блочную область видимости.
|
Цитата:
|
А в LLJS вообще только блочная область видимости.
|
Аргумент, как бы наталкивет на мысль что var действительно ошибка. , но функция это тоже, по сути, блок.. let костыль, получается так, но мне он не очень нужен.
__________________
Научу себя плохому
|
|
10.10.2014, 13:56
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от l-liava-l
|
Использование кучи циклов в одной функции не айс, это плохо
|
от них не всегда можно избавиться
|
|
|
|