
Nikolay
26.11.2016
17:46:18
можно на es6

Дмитрий
26.11.2016
17:47:13
Новые строки в es6 это прям вообще кайф)
Теперь можно делать так

Google

Oleg
26.11.2016
17:47:29

Alexandr
26.11.2016
17:47:45

Nikolay
26.11.2016
17:49:32

Кирилл
26.11.2016
17:51:20

Дмитрий
26.11.2016
17:52:53

Oleg
26.11.2016
17:53:02
Не
Это про другое
Это про дефолтные значения аргументов

@proDOT
26.11.2016
17:53:37

Nikolay
26.11.2016
17:53:50
там вроде было constructor(@property1, @property2)
@proDO смайлики трешь? ))

Oleg
26.11.2016
17:55:14

Дмитрий
26.11.2016
17:56:13
Во во))

Google

Дмитрий
26.11.2016
17:56:31
Ну кстати в параметры в js можно оочень дофига чего запихать))
function hyperSpread (
[ num , seed = Math.random() ] ,
{
length = 11 ,
position = {
x: x= num,
y: y= num + length
}
},
count = [...(seed+'')].length
) { return [ x, length, position, seed, count ] }
hyperSpread( [2016], { length:100 } )
//=> [ 2016, 100, { x: 2016, y: 2116 }, 0.743721348364818, 17]

@proDOT
26.11.2016
17:56:52

Nikolay
26.11.2016
17:57:13
тут короче пару смайликов пропало
штуки 4

Дмитрий
26.11.2016
17:57:24
В функции выше всё, кроме return - параметры

Oleg
26.11.2016
17:57:34

@proDOT
26.11.2016
17:58:46

Дмитрий
26.11.2016
17:59:17

Oleg
26.11.2016
17:59:44

Дмитрий
26.11.2016
17:59:54
Точно

Oleg
26.11.2016
17:59:54
Создавать их инстансы

Дмитрий
26.11.2016
18:00:20
Но это уже просто выражение, там всё равно, что объявлять, class expression или что-то ещё

Oleg
26.11.2016
18:00:36
Вот только ассинхронщину сложно
Потому что код функции не дождется результатов вызова параметров

Дмитрий
26.11.2016
18:01:12
Блин, async в переменных это жёстко))

Oleg
26.11.2016
18:01:42
Но можно добавть в параметр параметр, который будет вызываться через другой параметр вложенной функции внутри параметра параметра вложенной функции параметра

Дмитрий
26.11.2016
18:02:26
Callback hole
Какой-то

Nikolay
26.11.2016
18:02:35

Google

Дмитрий
26.11.2016
18:02:55
Круче только class { async constructor() {} }

Oleg
26.11.2016
18:02:57
метапрограммирование сурово ?

Дмитрий
26.11.2016
18:03:19
До сих пор не пойму, почему мне это не дают сделать ??
Ещё

Oleg
26.11.2016
18:03:35
Это да

Nikolay
26.11.2016
18:03:37
на самом деле в es6 вот это прям иногда подумать заставляет param1 => param2 => param3 => param4 => (result)

Oleg
26.11.2016
18:03:40
Но почти

Дмитрий
26.11.2016
18:04:01

Oleg
26.11.2016
18:04:28
Удобно для асинхронных функций

[Anonymous]
26.11.2016
18:04:37

Oleg
26.11.2016
18:04:53
Итого ты пишешь такую вот полоску, которая без стрелок была бы треугольником вложенным

Oleg
26.11.2016
18:05:27
Выполнение по асинхронным шагам

Nikolay
26.11.2016
18:05:38

Oleg
26.11.2016
18:06:34
http://icompile.eladkarako.com/wp-content/uploads/2016/01/icompile.eladkarako.com_callback_hell.gif

Nikolay
26.11.2016
18:07:00
А, видел )
лесенки

Дмитрий
26.11.2016
18:07:53
Ну вот у меня половинка лесенки, и так ориентироваться на самом деле реально удобно, в отличии от "полной"
В ramda функциях так вообще постоянно такая запись

Google

Nikolay
26.11.2016
18:08:48
скоро до кложуры дело дойдет

Oleg
26.11.2016
18:09:41
Можно ещё писать в стиле минимума вложенности и если нужно вложение - делать отдельный метод, а результаты каждого шага, при необходимости, хранить в свойствах класса, итого - полное отсутствие треугольников/калбекхелов/пирамид_смерти/и_прочих
ООП решает вопрос треугольности

Admin
ERROR: S client not available

Oleg
26.11.2016
18:10:27
Впрочем, можно и без классов, функция с функциями
И в замыкании хранить
Но суть таже в принципе
Выносить шаги в стейт
Результаты шагов в смысле

Дмитрий
26.11.2016
18:12:40
Но почти
Метапрограммирование в js это например когда у тебя есть пустой объект {}, который внезапно поступает таким образом
const meta = {}
meta.prop
//=> 'prop'
meta
//=> { prop: { name: 'prop', child: {} } }
meta.prop.child.fn
//=> ()=>'fn'
meta
//=> { prop: { name: 'prop', child: { fn:{ name:'fn',child:{} } } }
И так до бесконечности ?
Это странный пример, но реальное применение тоже есть)

Кирилл
26.11.2016
18:18:42
Ну что, нашли кто смайлики ворует?

Дмитрий
26.11.2016
18:19:41
Я говорю я сразу видел)
Сейчас не должны воровать)
?

Andrey
26.11.2016
20:24:09
А есть какие-то тулзы для анализа кода на поддержку в разных браузерах?

Evan
26.11.2016
20:26:01
https://habrahabr.ru/post/111748/
вторая ссылка из гугла

Andrey
26.11.2016
20:26:41
Это немного не то

Vladimir
26.11.2016
20:27:35

Google

Vladimir
26.11.2016
20:27:43
код или e2e

Andrey
26.11.2016
20:28:24
Входные данные - js код
Выходные - результат списком/таблицей
типо:
fetch: поддерживается там-то и т.д.

Oleg
26.11.2016
20:30:03
caniuse

Andrey
26.11.2016
20:30:29
Ну вот я писал код или получил готовый, и хочу узнать, в каких браузерах он будет работать корректно(на основе используемых технологий, те же fetch, es6 и т.д.)

Oleg
26.11.2016
20:30:50
Там руками, увы

Andrey
26.11.2016
20:30:59
caniuse
Вот по типу этого, но с анализом всего кода, а не вбиванием отдельно

Vladimir
26.11.2016
20:54:58

Andrey
26.11.2016
20:55:23

Vladimir
26.11.2016
20:55:36
тогда следи за этим проектом https://github.com/babel/babel-preset-env
> Support a browsers option like autoprefixer
вот эта строчка тебе нужна

Andrey
26.11.2016
20:56:34

Vladimir
26.11.2016
20:57:23
ну и смотри компат тейблы
http://kangax.github.io/compat-table/es6/

?Nadir
26.11.2016
20:58:45
Здесь JavaScript туса?