Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #261 (permalink)  
Старый 25.05.2014, 11:41
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от nerv_ Посмотреть сообщение
только не кофе

Называется, угадай что:
if ((x) => x * x) {
}


Странный у тебя пример
А вообще Arrow Function - это самое лучшее что есть в ES6, т.к.

1) Очень короткий и ясный синтаксис:

var foo = (x) => {
    return x * x;
};

// Ещё короче
var foo2 = (x) => x * x;

// Ещё короче :)
var foo3 = x => x * x;


2) Наследует this контекста в котором функция декларирована

var foo = {
  go: function () {
    var bar = () => {
      this.val // 1
    };
  }

  val: 1
};


3) Внутри Arrow Function не доступна ссылка arguments, что делает возможным дополнительную оптимизацию на уровне JIT и даст ощутимый профит при использовании вместе со всякими итераторами и т.д. ну а если нужен аналог arguments, то

var foo = (...args) => {
    ...
};
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 25.05.2014 в 11:48.
Ответить с цитированием
  #262 (permalink)  
Старый 25.05.2014, 13:08
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от nerv_
if ((x) => x * x) {
}
Все очевидно — такая запись не имеет смысла

Презервативы с подогревом

Последний раз редактировалось monolithed, 25.05.2014 в 13:21.
Ответить с цитированием
  #263 (permalink)  
Старый 25.05.2014, 14:07
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от monolithed
такая запись не имеет смысла
Может он имел в виду, что будет нечто подобное http://jsfiddle.net/5954r/:
var f, y = 10; 
if (f = (x) => x*x, f(y)) alert('it is worked!');

?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 25.05.2014 в 14:11.
Ответить с цитированием
  #264 (permalink)  
Старый 25.05.2014, 14:14
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от monolithed
Все очевидно — такая запись не имеет смысла
это называется найди 10 отличий
1.
// (x) => x * x
if (function(x){return x*x;}) {
    alert(1);
}

if ((x) <= x * x && (x) => x * x && (x) >= x * x) {
    alert(1);
}

2.
var t1 = (function(x) {
    return x*x;
}());

// вот тут x() что я делаю, угадай:
// 1. вызываю arrow function
// 2. или вызываю x()
var t2 = ((x) => x*x());

Если ты выберешь, любой из вариантов, я скажу, что имел вииду другой.
Если ты ничего не выберешь, ты не угадал

kobezzza, я не против тех плюшек, которые несут arrow function. Но синтаксис, по крайней мере на первый взгляд, мне не нравится
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 25.05.2014 в 14:18.
Ответить с цитированием
  #265 (permalink)  
Старый 25.05.2014, 14:17
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Gozar
Может он имел в виду, что будет нечто подобное http://jsfiddle.net/5954r/
var f = x => x * x;

if (f(10)) alert('it is worked!');

Я бы так написал

Сообщение от nerv_
но синтаксис, по крайней мере на первый взгляд, мне не нравится
Он идеален, за одним исключением, что нужны пустые скобки если нет параметров

Последний раз редактировалось monolithed, 25.05.2014 в 14:21.
Ответить с цитированием
  #266 (permalink)  
Старый 25.05.2014, 14:28
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от nerv_
синтаксис, по крайней мере на первый взгляд, мне не нравится
Сообщение от monolithed
Я бы так написал


А мне нравится, надоели уже эти function и return-ы, занимают время и место.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #267 (permalink)  
Старый 25.05.2014, 14:32
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Gozar
А мне нравится, надоели уже эти function и return-ы, занимают время и место.
Ага, еще бы ввели гарды и убрали лишние скобки цены бы не было
Ответить с цитированием
  #268 (permalink)  
Старый 25.05.2014, 14:53
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Gozar
А мне нравится, надоели уже эти function и return-ы, занимают время и место.
представь, что у тебя на экране дофига кода вида
var b = x => 2 * Math.PI;
var a = с <= z + y;

При беглом просмотре не понятно где функции, а где НЕ функции.
Т.е. приходится вчитываться, а это время.

Касательно времени набора - автокомплит. Я пишу "fu" или "re" и этого достаточно. А вот читается в разы лучше.

Неужели мы движемся в сторону ручной обсфукации
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #269 (permalink)  
Старый 25.05.2014, 15:06
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от nerv_
Неужели мы движемся в сторону ручной обсфукации
По твоей логике, Haskell, Erlang, Python, Lisp это обфускаторы?

Даже в C# и С++ есть лямбда-выражения
Ответить с цитированием
  #270 (permalink)  
Старый 25.05.2014, 16:48
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от nerv_
автокомплит
Да, есть такой. Не решает проблему:
Сообщение от Gozar
занимают время и место


Сообщение от nerv_
читается
Как выучишь, так и читается. Я помню, что когда увидел впервые Javascript сильно удивлялся и ругался, а когда узнал про Регулярные Выражения думал - как вообще можно понять, что в подобной строке
// /^(?:(?:(?:http(?:s)?:\/\/|www\.)[-.a-z0-9а-яё]+?\.[a-zрф]{2,5}(?::[0-9]+)?)(?:\/[-a-z0-9а-яё.,!?&#$@/:;+_=%|^*}{\\`~]+[^.,!?\s\["<])?)$/
написано?! Однако эту строку написал я через полгода. И сейчас меня совсем не парит подобная запись и читается она нормально

Мир разнообразен и хочу, чтобы js больше был похож на python, нежели на ООП php или лапшу. В js слишком многабукв. Давно пора добавить сахарку.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Превращение слов через запятую в ссылки Майрбек Элементы интерфейса 5 04.10.2014 10:45
Не работают ссылки после возвращения ajax tenebrosus jQuery 22 20.06.2014 12:39
Как добавить класс к нужному элементу при наведении на определеные ссылки? crazygangster77 Events/DOM/Window 3 05.06.2013 02:19
Ссылки внутри другой ссылки Madgeniy Events/DOM/Window 4 11.08.2012 14:58
ссылки получали стиль "visited" только на время сессии alexandr_poskrobka Серверные языки и технологии 7 10.03.2010 08:48