stay
Сказал тру тк думал про приведение типов
Ну true же, все правильно думал. Если ===, тогда false
Игорь
null и undefined равны друг другу в == и не равны ничему другому, примерно так и записано в спецификации, без приведений типов
Андрей
Вот такая странная штука что особо не сталкиваешься с подробным вещами в работе. Например не пользуюсь приведением типов. Определяю всегда переменные чтобы в не ожиданном месте не получить еррор. И тд и тп. Вся эта ересь по типу null == undefined или "строка"[0] проходит мимо стороной, и если наталкиваюсь на подобное то четко знаю что наговнокодил. Но блин на собеседование спрашивают такую дичь постоянно которой в бреду пользоваться не станешь
Андрей
Так а ошибся-то где?
С приведением типов например. Сейчас уже не помню
Игорь
Основы языка теперь дичь, оказывается 😏
Андрей
Это основны граблестроения js
Nikita
Основы языка теперь дичь, оказывается 😏
Ну эм, всегда можно спросить какую-нибудь ересь на valueOf =). Но зачем.
Андрей
Такие вещи как тайпскрипт например помогают избавиляться от граблей в родном js
Viktor
Доброго всем времени суток) Посоветуйсте пожалуйста, с чего начать изучение программирования? Я в сети натыкался на основы ООП, с него начать?
stay
Ну слушай. Дело не в том, что не сталкиваешься. От тебя требуют понимания работы языка, смотрят знаешь ли ты тонкости.
Андрей
Да это я понимаю..
Nikita
> Array(30).fill().map((_, i) => parseInt(NaN, i)).join(',') 'NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,13511,14648,15831,17060,18335,19656'
Игорь
Ну эм, всегда можно спросить какую-нибудь ересь на valueOf =). Но зачем.
Затем, что это должны знать. Если вообще не вдупляешь даже базовые вещи, которые в любом учебнике на первых страницах, зачем такого брать?
Nikita
> Array(30).fill().map((_, i) => parseInt(NaN, i)).join(',') 'NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,13511,14648,15831,17060,18335,19656'
Это тоже понятно, прописано в спеке, и основы жс. Но на собеседовании я такое не спрашиваю.
Nikita
А со строкой-то что не так?
Игорь
Это тоже понятно, прописано в спеке, и основы жс. Но на собеседовании я такое не спрашиваю.
если встречал 16-ричную систему счисления, можно догадаться, если подумать
Игорь
спасибо, кэп
Nikita
/shrug
Игорь
Но в жизни обычно встречают двоичную, 10-ричную, 8-ричную, 16-ричную
Андрей
А со строкой-то что не так?
Я сказал что это дело выкинет ошибку
Игорь
И в последней есть одно отличие от остальных
Игорь
Которое даст тебе подсказку
Андрей
Ещё я долго угарал с ёжик > яблоко
Андрей
Тут сегодня тоже этот вопрос задавал
Dika
Которое даст тебе подсказку
кроме этого нужно понимать, что NaN приведется к строке
Nikita
Которое даст тебе подсказку
Там не только в этом подвох, а, скорее, в приведении с строке. (И регистронезависимости, но это мелочь).
Игорь
Возникает ощущение что впервые видишь всё это
Андрей
А ты где js изучал?
На практике)
Игорь
Почему вдруг с 24-й сс пошли числа
Nikita
Ещё я долго угарал с ёжик > яблоко
> const ёжик = 10 undefined > const яблоко = 20 undefined > ёжик > яблоко false
Андрей
Не так "ёжик" > "яблоко"
Dika
Ха!
Андрей
Это про таблицы юникода
Nikita
Не так "ёжик" > "яблоко"
Ну так а в начале ты кавычки потерял
Андрей
Буква ё идёт в списке ниже
Николай
Помогите пожалуйста) Как можно эту жесть оптимизировать? Мне просто нужно получить токен, без всяких промисов, просто отправить запрос, получить токен и вернуть его из функции.
Игорь
Вот эта ещё хорошая let z, { z: x = 1 } = { z }; x;
Nikita
Это про таблицы юникода
> 'ёжик'.localeCompare('яблоко') -1
Nikita
Вот эта ещё хорошая let z, { z: x = 1 } = { z }; x;
Это тоже уровня «зачем такое спрашивать».
Андрей
Это тоже уровня «зачем такое спрашивать».
Ну вот собственно все остальные вопросы были такие. Все более менее нормальные я озвучил))
Игорь
Это тоже уровня «зачем такое спрашивать».
Чтобы унизить человека, очевидно 😊
Андрей
Не думаю
Не думаю что?
Игорь
Не думаю что?
Что остальные вопросы были такого уровня.
Nikita
Чтобы унизить человека, очевидно 😊
Интересно, есть ли люди, задающие на собеседовании ту самую задачку про (typeof x === 'undefined' && !x && !!(x+x)) === true (примеры варьируются). Это вообще самое бесполезное, что можно спросить, кмк.
Nikita
(если сходу)
Nikita
Если посмотреть, как человек с гуглом, интернетом, и спекой полезет это раскручивать — то мб и интересно.
Игорь
а что надо x подобрать?
Андрей
null + {0:1}[0] + [,[1],][1][0]
stay
У меня такого обычно не спрашивали. В основном у меня интересовались тонкостями работы event loop, Спрашивали про паттерны функционального программирования, немного про ООП и прототипирование. Такой жести давно уже не было.
Андрей
Это вопрос тупо на внимательность с запятыми и тп
Nikita
А, это то, чего тебя спросили?
Nikita
Это вопрос тупо на внимательность с запятыми и тп
Скорее на то, что ты помнишь, что такое null+число. Потому что с запятыми тут всё понятно и видно, и это просто доступ к элементам, а вот про нулл помнить надо. Или не надо.
Андрей
Последняя часть [1][0] тут как бы надо реально приглядеться чтобы не решить что это undefined
Андрей
Вот от того и NaN
stay
Ой, я помню у меня был ``` "123".split("").reduce((acc,curr)=>{return acc+curr} ```
Nikita
Вот тут приглядывайся :trollface:
Nikita
[[0],2][[[]+[11,2]][0][[[1][[0]]]]] - так ещё хуже
Nikita
Но опять же, непонятно, зачем спрашивать такое.
Nikita
null + {0:1}[0] + [,[1],][1][0]
Хотя [,[1],][1][0] вполне ок.
Николай
допёр.. Такое норм?
Nikita
А ещё можно попросить код на jsfuck реверсить. :trollface:
Nikita
Правда, если дать компьютер — это уже норм вопрос становится. Хотя смотря какие таски.
stay
Это который с 6 символами?