@js_ru
JavaScript — русскоговорящее сообщество

Рекомендуем сразу отключить уведомления Правила: http://bit.ly/our_etiquette См. также: @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

3006 members

Архив канала @js_ru 29 мая 2017 г.

07:21:48 ДП
User 199430686
Не пойму, а как мне в строку для json добавить значение из переменной?
07:23:16 ДП
User 21752120
User 199430686
Не пойму, а как мне в строку для json добавить значение из переменной?
приплюсовать, объеденить 2 строки
07:24:12 ДП
User 199430686
var user = '{ "name": "jname"  
тоесть тут сделать  '{ "name": '+ jname '  + и так далее?
07:25:59 ДП
User 21752120
User 199430686
var user = '{ "name": "jname"  
тоесть тут сделать  '{ "name": '+ jname '  + и так далее?
var finalObj = json1.concat(json2);
или
var object = $.extend({}, object1, object2);
07:26:03 ДП
User 352516424
можно юзать косые кавычки еще
var user = '{"name:"jname"}';
var newUser = `${user}someString`;
07:27:16 ДП
User 199430686
ну пи.... запутался теперь точно
07:27:18 ДП
User 352516424
User 21752120
var finalObj = json1.concat(json2);
или
var object = $.extend({}, object1, object2);
тогда перед ентим нужно JSON.parse сделать
07:27:46 ДП
User 352516424
User 199430686
var user = '{ "name": "jname"  
тоесть тут сделать  '{ "name": '+ jname '  + и так далее?
так можно тоже
07:28:31 ДП
User 352516424
var user = '{"name":"jname"}'
var newUser = user + 'someString'
07:34:55 ДП
User 136500394
А может лучше работать с объектом, а нее со строкой?
07:34:55 ДП
User 136500394
Не пойму, а как мне в строку для json добавить значение из переменной?
07:42:00 ДП
User 136500394
А еще лучше без преобразований, зачем?
08:13:28 ДП
User 199430686
упростил ещё 
var strtosend = [
                {   "name": jname, 
                    "phone": jphone, 
                    "subj": jsubj, 
                    "message": jmessage}
                   ];
08:16:48 ДП
User 164545727
такой кейс, кто нибудь пробовал делать смену хеша на странице через history.pushState, и нормально ли так делать? )
08:50:17 ДП
User 164545727
изменение хеша напрямую тоже дает гулять по истории браузера
09:17:07 ДП
User 5619251
User 21752120
var finalObj = json1.concat(json2);
или
var object = $.extend({}, object1, object2);
можно и без жквери assign'ом...
12:32:09 ПП
User 178689889
Чуваки, а где можно позадавать вопросы по аналитике?
01:18:07 ПП
User 178689889
В общем, мы продаем продукты через Gumroad и отслеживаем все через GA.

В GA есть id, привязанный к Gumroad для отслеживания переходов на страницу покупки с доменов наших продуктов.

Сейчас по этому id мы получаем инфу о переходе с сайта продукта, но не можем получить информацию о реферале.

Например: чел находит сайт продукта через поиск в гугле, переходит на сайт и оттуда на страницу попку в Gumroad. Нам нужно в аналитике увидеть Google как первоисточник.

До этого мы отдельным Id отслеживали переходы на лендинг и другим - с лендинга на Gumroad.

Вопрос: можно ли как-то объединить эти источники трафика, чтобы через отдельный GA id видеть всех рефералов, переходы через которых привели на страницу покупки в Gumroad?
01:18:46 ПП
User 178689889
И если да, то как это настроить?
02:21:02 ПП
User 178689889
я уже поспрашивал, направили в сторону enhanced ecommerce и сказали, что нужно ручками ловить события и реагировать на них методами либы.
Лендинги на Readymag, покупка на Gumroad. Readymag дает ставить скрипты только в head, а чтобы повесить свои события, надо извращаться с его кастомными виджетами.
02:21:40 ПП
User 178689889
У каждого лендинга свой id и у Gumroad отдельный, чтобы раздельно смотреть аналитику ленлингов и переходов на покупку
02:31:51 ПП
User 164545727
второй уровень реферала не поймать, если его явно на первом уровне где то сохранять
02:32:13 ПП
User 164545727
есть document.referrer
02:32:58 ПП
User 164545727
т.е получается так, пришли с гугла на страницу, мы это записали, дальше уже эту информацию прокидываем вместе с остальными данными
05:07:20 ПП
User 352516424
а использование тайп чекера это маст хев?
05:09:04 ПП
05:11:58 ПП
User 580899
User 178689889
В общем, мы продаем продукты через Gumroad и отслеживаем все через GA.

В GA есть id, привязанный к Gumroad для отслеживания переходов на страницу покупки с доменов наших продуктов.

Сейчас по этому id мы получаем инфу о переходе с сайта продукта, но не можем получить информацию о реферале.

Например: чел находит сайт продукта через поиск в гугле, переходит на сайт и оттуда на страницу попку в Gumroad. Нам нужно в аналитике увидеть Google как первоисточник.

До этого мы отдельным Id отслеживали переходы на лендинг и другим - с лендинга на Gumroad.

Вопрос: можно ли как-то объединить эти источники трафика, чтобы через отдельный GA id видеть всех рефералов, переходы через которых привели на страницу покупки в Gumroad?
пробовали сделать разные utm-метки для разных кейсов?
05:21:23 ПП
User 212795634
всем привет, кто с маком и может помочь конвертировать sketch файл в zeplin?
05:44:25 ПП
User 164545727
User 212795634
всем привет, кто с маком и может помочь конвертировать sketch файл в zeplin?
могу
09:02:59 ПП
User 277250801
var i=0; 
var bar = function() {
  i++;
  console.log(i);
  if (i<10) {
    bar();
  }
}
bar();
09:03:36 ПП
User 277250801
почему наша анонимная функция, хранящаяся в переменной bar может быть рекурсивной?
09:06:15 ПП
User 204303
А почему нет?
09:07:20 ПП
User 277250801
гммм, окей, если ее запустить просто как bar(), то все ок, это видимо я туплю
09:07:32 ПП
User 277250801
другой вопрос. А может ли анонимная IIFE быть рекурсивной?
09:08:03 ПП
User 204303
Ну если она именована и вызывает сама себя, вай нот
09:08:20 ПП
User 277250801
пардон, поправил. Анонимная IIFE
09:09:41 ПП
User 43849824
если её присвоить константе - то почему нет?))
09:09:44 ПП
User 277250801
именованная IIFE -  вроде понятно как: 

(function f() { i++; if (i<10) f(); }())
09:09:52 ПП
User 204303
Если к функции не имеешь доступа по переменной ты, то и в рекурсию вогнать ее не в силах
09:10:06 ПП
User 277250801
User 43849824
если её присвоить константе - то почему нет?))
требую демонстрации
09:10:53 ПП
User 204303
x = (()=>{})() вернет результат выполнения, так что нет
09:12:44 ПП
User 277250801
я тут задумался, зачем вообще нужны function statements и имена функций, почему не обойтись только function expression'ами и не сделать все функции анонимными.
09:12:57 ПП
User 204303
дебаг
09:13:09 ПП
User 277250801
это да
09:13:32 ПП
User 277250801
ну вот еще - если хочешь сделать рекурсивную IIFE
09:13:38 ПП
User 277250801
а еще для чего?
09:13:50 ПП
User 204303
доступ к именованной функции быстрее, но там разница ооооооооочень маленькая
09:14:47 ПП
User 43849824
а, у вас IIFE
09:15:02 ПП
User 43849824
сплю уже совсем
09:17:51 ПП
User 43849824
а по поводу именованных и анонимных - там же разница в контексте (this) есть
09:18:15 ПП
User 277250801
как же есть если нет
09:18:21 ПП
User 277250801
главное - как запускать
09:19:19 ПП
User 277250801
нуууу, да, *как бы* есть
09:20:19 ПП
User 277250801
если запускать как метод объекта
09:20:42 ПП
User 48140517
User 204303
Если к функции не имеешь доступа по переменной ты, то и в рекурсию вогнать ее не в силах
А как же arguments.callee ?
09:20:49 ПП
User 277250801
дык низя в strict
09:24:33 ПП
User 48140517
Понятно.
(я тут мимокрокодил, жс не знаю, в ас можно (но так оч редко кто делает))
09:26:11 ПП
User 277250801
очень интересно. Получается, если ты избегаешь хойстинга и не делаешь рекурсивных IIFE (ни разу в жизни не видел), то имя функции - это такой атавизм. Или по крайней мере, вещь, без которой можно обойтись.
09:33:11 ПП
User 277250801
Вдогонку: 
var a = function b() {};
a.name 
// "b"

var c = function () {};
c.name
// "c"

То есть функция-то анонимная, но name у нее есть
09:40:24 ПП
User 204303
User 48140517
А как же arguments.callee ?
Не кашерно это всё
09:40:51 ПП
User 48140517
User 204303
Не кашерно это всё
Спасибо! Я уже понял :)  Почитал.
10:34:44 ПП
User 182928241
User 204303
Не кашерно это всё
А так? 😊
11:41:29 ПП
User 142753395
Привет, ребят может под рукой у кого в закладках: есть какая дока красивая описывающая ES6 деструктор, мне нужно ссылочку в код вставить почему объект определён списком