Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Результаты опроса: Какой вариант вам нравится больше ?
1й: стиль ES-5, и 2й вообще НЕ нравится 2 66.67%
2й: стиль ES-6, и 1й вообще НЕ нравится 0 0%
1й: стиль ES-5, НО 2й тоже ничего 1 33.33%
2й: стиль ES-6, НО 1й тоже ничего 0 0%
Голосовавшие: 3. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2016, 17:32   #1
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию На счет ECMAScript. ES6

Только про прочитал на хабре интересную статью, про новые фишки ECMы.
В целом, очень даже ничего. Но некоторые вещи просто жесть. Может я старею.

Это из статьи.

ВАРИАНТ [1]: ES5
PHP код:

function settings() {
  return { 
display: { color'red' }, keyboard: { layout'querty'} };
}

var 
tmp settings();
var 
displayColor tmp.display.color;
var 
keyboardLayout tmp.keyboard.layout;

console.log(displayColorkeyboardLayout); // red querty 
ВАРИАНТ [2]: ES6
<<То же самое (но короче):>> говорит автор.
PHP код:

function settings() {
  return { 
display: { color'red' }, keyboard: { layout'querty'} };
}

const { 
display: { colordisplayColor }, keyboard: { layoutkeyboardLayout }} = settings();

console.log(displayColorkeyboardLayout); // red querty 
Хотелось бы услышать ваше мнение. Какой код вам больше нравится ?

// https://habrahabr.ru/post/313526/
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 25.10.2016, 20:57   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Код:
1й: стиль ES-5, НО 2й тоже ничего
Проголосовал за вариант "1й: стиль ES-5, НО 2й тоже ничего", несмотря на то, что синтаксис второго стиля вообще не знаком и нов для меня (да, мои знания ECMA не очень новы, главным образом из-за того, что JS я учил(у) по книге от 2008 года).

Ну а что, каждых из них хорош по-своему. Интуитивно понятно, что там происходит. Кстати, мне это напоминает MathCAD. Там можно похожим образом нескольким разным переменным (в смысле, на элемента одного массива) задать значения через массив/матрицу/вектор. Например, там можно написать
Код:
|x|      |1|    
| |      | |       
|y| :=   |2|                
| |      | |         
|z|      |3|
В итоге получим:
x = 1
y = 2
z = 3

P. S. Статью не читал
Вадим Мошев вне форума Ответить с цитированием
Старый 25.10.2016, 21:02   #3
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Если бред написать в укороченном стиле, лучше не станет. У ES6 полно славного синтаксического сахара; однако код писать следует используя голову, а не версии синтаксиса языка.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 25.10.2016, 22:16   #4
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Возможно в конкретной ситуации оно покажет себя по другому, но в примере (на мой взгляд) они только ухудшают читаемость кода в целом.

Как сказал один знаменитый Русский дизайнер/инженер:

Это не дословно.
Цитата:
Утюг на углях, это хорошо.
Утюг на елекстричестве, лучше.
А утюг на елекстричестве с патифоном, холодильником и мини баром, это перебор.
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 26.10.2016, 11:20   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Сахар это конечно вкусно, но не полезно.
Надо подождать ещё пару лет пока допилят стандарт и утвердят его, и большая часть пользователей отвалится от IE9 а то и 10-го. Тогда можно уже о чем-то говорить. Я уже писал об этом на хабре, что синтаксический сахар это больше проблема, чем польза. Да, тебе код писать легко, но есть версии браузеров, которые используются, и для которых надо использовать комбаин babel чтобы транслировать сахар, в ECMAScript 5, и получается технический js-код, его сложно читать т.к. написан машиной для машины. А про его отладку вообще молчу. Разве что babel научился правильные map'ы создавать.

P.S. Пока что, из всего что мне понравилось, это изоляция переменных в текущем контексте с пом.
Код:
let
и
шаблонные строки, вместо:
Код:
var i = 1, s = 'string #'+i;
можно писать:
Код:
var i = 1, s = `string #${i}`; //что короче, понятнее и значительно упрощает написание кода.
ну и многострочные литералы, типа:
Код:
let itbe = "line 1
line 2
line 3
line 4";
вместо
Код:
var itbe = "line 1\n\ line 2\n\ line 3\n\ line 4";

Последний раз редактировалось Человек_Борща; 26.10.2016 в 11:30.
Человек_Борща вне форума Ответить с цитированием
Старый 26.10.2016, 11:25   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
синтаксический сахар это больше проблема, чем польза. Да, тебе код писать легко, но есть версии браузеров, которые используются, и для которых надо использовать комбаин babel чтобы транслировать сахар
А проблема-то в чем?
Все равно ж сборка (вебпак или аналоги) часто нужна для других задач, так что почему б и babel не прикрутить заодно
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 26.10.2016, 12:16   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
А проблема-то в чем?
Все равно ж сборка (вебпак или аналоги) часто нужна для других задач, так что почему б и babel не прикрутить заодно
зачем прикручивать что-то, когда можно просто написать один и тот же код, понятным языком для всех и оно точно будет работать и на старых браузерах и на новых, и подаваться нормальной отладке и анализу до кучи оно работать будет быстрее. Молчу уже про всякие webpack которые грузят и задействуют туеву хучу ресурсов чтобы транслировать тебе максимум 20 файлов твоего кода (а то и всего проекта) на новомодном-современном (ES2015, ES6, ES7, что-там ещё?) в истинно-православный js.

Зачем? Просто напиши нормально, и это просто будет работать где угодно и как задумано тобой.

Последний раз редактировалось Человек_Борща; 26.10.2016 в 12:18.
Человек_Борща вне форума Ответить с цитированием
Старый 26.10.2016, 15:01   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

ну вебпак это ж не только вызыватор бабеля, он и другие важные вещи делает. Объединение модулей, require, минификация, ...

source map для минифицированного файла все равно нужен же
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 26.10.2016, 19:20   #9
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Соглашусь с земляком, "Человеком Борща".

На счет того что:
Цитата:
Сахар это конечно вкусно, но не полезно.
В целом есть интересные вищки нового ES, даже очень классные.
А некоторые, мне кажется, на столько убоги, что в будущем привидут к проблемам.

Но ничего, мы опять придумаем велосипед, на котором будет лучше ехать.
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 26.10.2016, 22:06   #10
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
P.S. Пока что, из всего что мне понравилось, это изоляция переменных в текущем контексте с пом.
Я правильно понимаю, что здесь речь идёт о неком "сокращении" области видимости переменных, как это в C++, например сделано.

Например, вот в таком коде (JS)
Код:
if (condition) {
	var x = 1;
} else {
	var x = 2
};
переменная x будет видна за пределами оператора if. Для C++ такое не будет верным. Я верно понимаю, что того эффекта в JS можно достичь с помощью директивы let?


Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
ну и многострочные литералы, типа:
То есть теперь, чтобы получить "мульистроку", мы можем разбить строковый литерал на несколько строк?


Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Объединение модулей, require, минификация,
Мне непонятно, причём здесь минификация? Ведь это же возможность языка программирования, а операция над кодом
Вадим Мошев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Счет остатков! creshik SQL, базы данных 0 20.12.2012 17:40
Счет количесва. Predator199 JavaScript, Ajax 1 09.09.2012 22:25
СЧЕТ Макавели Microsoft Office Excel 2 28.02.2012 15:53
Счет Alex_sim Общие вопросы C/C++ 4 10.06.2010 11:28
Счет букв zenner Microsoft Office Excel 14 24.10.2009 00:26