Олег
Будет быстрее чем все остальные
кстати далеко не факт
был кейс фильтровать большой массив данных, а затем мапить его
с помощью рамды
написал трансдьюсер, который делал это за один проход, результат: нативный способ был быстрее в 3 раза
Дима
Дима
Хотя в принципе я не то чтобы удивлён, в рамде довольно много фич, чтобы получались пенальти по производительности
Олег
Muhammad Sodiq
Ребят есть ресурсы где можно почитать про подводные камни JS, чтобы самому меньшу наступать на них?
Muhammad Sodiq
На подобие JavaScript Garden?
Alexander
0.1 + 0.2 != 0.3
Alexander
Пока хватит тебе :)
Oleg
Это в очень многих языках так
Oleg
Но новичков в программировании вообще - да, пугает
melvin
a = [1,2,3];a[3]=a
Oleg
Ну это тоже во многих языках
melvin
ну и классек
melvin
var i=5;
i = ++i+++i+++i+++i;
Oleg
ReferenceError: Prefix ++ operator applied to value that is not a reference.
Oleg
Не, давайте именно вот камни JS
Oleg
Префиксы тоже во многих языках есть
melvin
melvin
ты вода
melvin
в джсе объекты это хештаблицы?
Oleg
А вот теперь чисто JS
[] + [] // ""
[] + {} // "[object Object]"
{} + {} // "[object Object][object Object]"
{} + [] // 0
melvin
melvin
как раз изза этого язык и забросил
Oleg
Самое страшное что там всё логично
Oleg
Oleg
:DDD
Oleg
Ошибка правда не кладящая, но тем не менее
melvin
Anonymous
3
Anonymous
И 4,
Oleg
Anonymous
Для меня не ясно вот это ~~{q:1} === 0*
Oleg
Anonymous
Oleg
Тоже самое
Oleg
То есть не важно что за объект
Anonymous
Что происходит при применении побитового не к объекту?
Anonymous
И вот ~~[1] !== 0
Oleg
NaN
Oleg
Объект становится NaN, это 0 при побитовом
Oleg
В JS весело, правда? :D
Muhammad Sodiq
Oleg
[1] это '1', при переводе в число - это 1
Oleg
1 !== 0
Oleg
А секрет в том что toString и valueOf методы вызываются при преобразовании
Anonymous
Oleg
Ну так нормально же, какая там 5 в двоичной системе?
Muhammad Sodiq
на es5 это все, на es6 убрали эти недостатки?
Oleg
Обратная совместимость сурова
Oleg
Но некоторые вещи убирают по чуть-чуть
Oleg
В классах насильно стоит 'use strict'
Anonymous
Oleg
Просто проблемы эти все в неочевидных toString для некоторых
Oleg
С другой стороны их можно переопределять для своих объектов
Oleg
Классический пример - своему классу Person при сложении со строкой сделать чтобы возвращал имя этого Person в стиле
Привет ${person = new Person('Вася')}!
Oleg
А там toString метод, который всё делает как надо и выводит имя, а может и ещё чего
Oleg
И подобное такое
Anonymous
на каких ОСях вы кодите?
Oleg
Мак наше всё
Андрей
Винда
ixplo
Винда
Oleg
Жду линуксойдов в треде
ixplo
Есть люди на линухе
Андрей
Ну, у меня линукс в винде. Считается?)
Anonymous
и как вообще на винде со всем этими нодами и другими штуками из жс мира?
Oleg
Нода это же от хрома кусок
Oleg
А хром чувствует себя прекрасно в винде
andrei
Чурка
Каким местом этоп одводный камень ?
Чурка
a = [1,2,3];a[3]=a
Андрей
Андрей
Вот всё прекрасно в винде с линухом)
Андрей
Правда давно не обновлял окружение
Чурка
Языки, в которых массивы передаются по значению пересчитать по пальцам.
Sergey
Андрей