• Нужно ли использовать iife?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    С появлением в ES6 let и const – объявлений с блочной областью видимости – без IIFE можно обходиться там, где их заводили только ради чистоты глобальной о.в.:
    // раньше
    (function(){
      var a = 1;
      var b = 2;
      b *= 2;
      console.log(a + b);
    })();
    // здесь a и b уже не видны
    
    
    // теперь можно просто заключить часть кода в "блок"
    // и все переменные останутся в Вегасе:
    {
      const a = 1;
      let b = 2;
      b *= 2;
      console.log(a + b);
    }
    Ответ написан
    3 комментария
  • Как вы боретесь со слабой типизацией и зачем ее придумали?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Хорошая архитектура снижает необходимость в приведении типов.
    5af00f1b811b0153622827.png
    А придумали и используют динамическую типизацию потому, что она существенно снижает TTM.
    Ответ написан
    4 комментария
  • Установка ubuntu без флешки?

    @pfg21
    ex-турист
    Андроид-телефон с рутом, на него поставить прложение drivedroid
    в телефон залить iso-образ, путь "куда" посмотреть/настроить (я обычно настраиваю на микросд) в настройках drivedroid - image directories.
    потом запустить drivedroid, он покажет содержимое диры
    долго нажать на нужный образ и выбрать в менюшке convert image using isohybrid
    После чего кортко нажать на образ и смонтировать на одно из "посадочных" мест (обычно два).
    drivedroid перенастроит усб-подсистему андроида (вот ипонадобиться рут) и для компутера телефон будет отображаться как усб-привод с образом, из которого можно загрузиться.
    перезагрузить комп - войти в меню выбора загрузочного устройства и выбрать устройство linux image чегото там
    после чего пойдет загрузка с iso-образа.
    кучу линух и виндовс так ставил.

    кучу iso-образов можно качнуть из самого drivedroid
    Ответ написан
    Комментировать
  • Как делаются подобные сайты?

    @asd111
    Смена цвета бэкграунда при скролле - делается на js, есть готовые либы.
    Видео с эффектами - один блок с обычным видео и второй блок внутри с уменьшенным видео.
    Текстовые эффекты и ещё пара эффектов - шейдеры на webgl.
    Остальное на js.
    Ответ написан
    Комментировать
  • Все объекты true почему это ложь ({}==true)?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Потому что при сравнении объектов и булевых значений последние преобразовываются в числа, а при сравнение объектов и чисел объекты также преобразуются в числа, т.е., в конечном счёте, в данном случае имеет место сравнение NaN и 1.

    Подробнее о том, как выполняются сравнения, можете глянуть здесь.
    Ответ написан
    Комментировать
  • Как написать условия для диапазона цен?

    Ni55aN
    @Ni55aN
    Из примера не ясно по какому правилу нужно отбирать, так как 11000 ближе к 12000, а не 8000.
    Если брать только по модулю разности, тогда:

    var prices = [1000,4000,8000,12000,16000];
    var price = 18000;
    var diff = prices.map(a=>Math.abs(a-price));
    diff.indexOf(Math.min(...diff))
    Ответ написан
    Комментировать
  • Хочу получить рандомные числа. Что тут не так?

    @imhuman
    Не усложняйте вариант задающего вопрос, все у него правильно было, только item стоило сделать функцией, иначе всегда одинаковый результат был бы. Добавлять -1 к array.length не надо, иначе в сочетании с floor никогда не получим последний элемент массива.
    var array = ['1', '2', '3', '4', '5', '6', '7'];
    var item = function(){return array[Math.floor(Math.random()*array.length)]};
    setInterval(function () {
            console.log(item());
    }, 1000);
    Ответ написан
    1 комментарий
  • Javascript уникальные значения свойства объектов?

    Stalker_RED
    @Stalker_RED
    let data = [
     {id: 1, serial: "Blood.Drive", season: 1},
     {id: 2, serial: "Blood.Drive", season: 1},
     {id: 3, serial: "Foo.Bar", season: 1},
     {id: 4, serial: "HelloWorld", season: 1},
    ]
    
    let unique = data.reduce((acc,elem)=>acc.add(elem.serial), new Set())
    
    console.log(unique)
    https://jsfiddle.net/9Lunhds9/
    Ответ написан
    Комментировать
  • Однодневкам-одновопросникам тостера запретить задавать вопросы?

    @Beltoev
    Живу в своё удовольствие
    Думаете, 10 бесполезных ответов лучше, чем один бесполезный вопрос?

    К тому же, тут и без новичков достаточно таких ответов, а с такими правилами тостер вообще в помойку может превратиться
    Ответ написан
    8 комментариев
  • Какой необходимый уровень знаний для junior React.js Разработчика?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    UPDATE: реальные тестовые задания и разборы здесь, ответы на все вопросы из поста в моем блоге об обучении react.

    не включая основы js

    Извините, но стандартная задача, про "напишите функуцию add, которая при вызове add(1)(2) вернет 3" - многих положила на лопатки =) Поэтому будьте готовы..

    React
    0) Какую проблему решает react ?
    1) Мгновенно ли срабатывает setState? Если нет, то как выполнить код, который 100% выполнится после того, как новый state будет установлен?
    2) Зачем многие постоянно пишут в constructor: this.FUNCTION_NAME = this.FUNCTION_NAME.bind(this) и отсюда вопрос вытекает чему равно this в разных местах вашего компонента...
    3) в каких методах жизненого цикла стоит выполнять xhr запросы? В каких стоит "обновлять state на основе props"?
    4) Что будет если вызвать this.setState в render методе компонента?
    5) зачем нужен componenWIllUnmount, приведите пример..
    6) Контролируемые, не контролируемые компоненты
    7) Как организовать роутинг в реакт приложении? (ответ: взять react-router - подходит, но было бы круто, если бы вы рассказали, как он примерно работает)*
    8) Зачем нужны propTypes? Что происходит с ними в production сборке?
    9) Как можно удобно "отлаживать" чужой код приложения, написанного на react (намек в сторону React devtools)
    ...

    Redux
    0) Какую проблему решает redux?
    1) Зачем многие создают типы действий NAME_REQUEST / NAME_SUCCESS ? А заодно, что такое "действие", а что такое "создатель действия"...
    2) Что такое редьюсер? Можете написать простой редьюсер без react/redux?*
    3) Для чего нужен redux-thunk? Как он работает? Напишите (можно псевдокод) асинхронный создатель действия (либо, если надоело говорить "терминами" - асинхронный aciton)
    4) Как компоненты приложения получают "пропсы" из "стора"?*
    5) Можно ли (и считается ли это нормальным) использовать state, если используется Redux?
    6) Почему в reducer'ax мы возвращаем новые объекты? Приведите пример, когда вы возвращаете новый объект, а когда тот же самый.
    6.5) А так же, "как в js вообще это работает?". Например:
    let obj1 { name: 'Test', age: 100 }
    let obj2 = obj1
    obj2.name = 'Test_new'

    Что будет в obj1, почему? В каких случаях объекты могут быть равны?
    7) Что возвращает функция connect (из react-redux)?
    ...

    Общее:
    0) package.json
    1) Webpack, gulp, etc...
    2) node.js
    3) promise

    Что-нибудь практическое:
    1) Как бы вы валидировали форму, если ошибки валидации приходят после submit'a ее на сервер..
    2) Почему не работает следующий код, сделайте чтобы работало
    ...
    На истину не претендую, но такие вопросы имели место быть на собеседованиях. В беседе можно многое разузнать дополнительными вопросами и так далее. Так же, если часть вопросов вам неизвестна - не беда, многие и на половину ответить не могут.

    p.s. возможно дополню...
    p.p.s. звездочкой отметил, на мой взгляд не самые необходимые для junior-собеседования вопросы.
    Ответ написан
    31 комментарий
  • Почему числа с унарным минусом выдают 'true' в логическом контексте?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    www.ecma-international.org/ecma-262/7.0/index.html...
    Undefined -> false
    Null -> false
    Boolean - как есть
    Number - +0, -0, NaN -> false, остальное -> true
    String - пустая строка -> false, остальное -> true
    Symbol -> true
    Object -> true
    Ответ написан
    Комментировать
  • Как при клике на элемент получить src и value дочерних элементов?

    dpigo
    @dpigo
    Front-end developer
    В обработчике события перебирайте любым удобным способом e.target.children, где e - параметр функции обработчика.
    Ответ написан
    3 комментария
  • Как грамотно замаскировать поле _id при передаче на UI?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    "почти точно" знать

    почти точно взломать, почти точно увидеть секретные секреты.

    Тому кто захочет узнать какие-то секретные ссылки в последнюю очередь в голову придёт перебирать цифры в такой строке, потому что изначально видно что это очень длинный набор буквоцифр, который просто так не подобрать.
    Только если это упоротый школьник, который вообще ничего не понимает в жизни.

    Опять же что получить "почти одинаковые" записи надо добавлять прям вообще одномоментно.
    Дальше чем 1 ID соседний вряд ли "переберётся" брутом.
    Короче это все Неуловимый Джо.

    И если нужна безопасность и защита от чужих глаз - нужно авторизацию проверять.
    Ответ написан
    5 комментариев
  • Нормально ли спрашивать про бывшую зарплату?

    gobananas
    @gobananas
    finishhim.ru
    Мы постоянно задаём такие вопросы и все отвечают, не припомню что бы кто-то не ответил. Тогда сразу открывается возможность для разговора о причинах смены работы:

    1. Получал меньше хочет больше - всё понятно, давайте только обсудим на сколько больше вам хотелось бы получать?
    2. Получал столько же сколько указано в вакансии на этой работе - причина смена места работы не в деньгах, тоже обсуждаем что не нравилось (в уме прикидываем как сделать что бы человеку всё нравилось)
    3. Получал больше идёт на меньшую - и такое бывает. Жизненные обстоятельства (работа нужна срочно), сферу деятельности человек меняет.

    Если бы мне человек не сказал доход с предыдущего места работы, ну не сказал и ладно, но для себя я галочку поставил бы что закрытый, опасливый человек, мы таких не любим )))

    В вакансии у нас указана реальная вилка ЗП и от того сколько человек получал на предыдущем месте ни эта вилка, ни условия не изменятся. Девушка однажды пришла на собеседование так же на 25-30, сказала на предыдущем месте работы 200 получала, на джипе приехала ))

    У нас люди приходят на собеседование и свободно говорят что у меня есть сейчас сторонний доход 35 например и у вас я планирую работать на 28, т.е. мы чётко понимаем что на стороне человек будет зарабатывать больше чем у нас, но он нам нравится то мы всё равно берём его.
    Ответ написан
    22 комментария
  • Чему равна строка при сравнении с числом в Javascript?

    @GreatRash
    Читаем спецификацию:


    The comparison x == y, where x and y are values, produces true or false. Such a comparison is performed as follows:

    ...

    5. If Type(x) is String and Type(y) is Number, return the result of the comparison ToNumber(x) == y.

    Чиаем, что за ToNumber такой:


    ToNumber applied to Strings applies the following grammar to the input String. If the grammar cannot interpret the String as an expansion of StringNumericLiteral, then the result of ToNumber is NaN.

    Следовательно JS читает ваше выражение так:

    'A' == 65
    // =>
    Number('A') == 65
    // =>
    NaN == 65
    // =>
    false

    Всё просто и понятно :)
    Ответ написан
    1 комментарий
  • Как удалить элемент на чистом JavaScript?

    @balamyt92
    ; select * from users; --
    getElementsByTagName возвращает массив.

    так сработает.

    document.getElementsByTagName( "html" )[0].remove();
    Ответ написан
    3 комментария
  • Как применить к массиву replace?

    var arrText = [1,2,3,4];
    var sameText = arrText.join('')
    Ответ написан
    Комментировать