@nodejs_ru

Страница 2189 из 2748
Oleg
22.06.2018
14:56:37
типа ({}).toString() + [].toString() ?

Евгений
22.06.2018
14:56:48
Oleg
22.06.2018
14:57:11
но почему?)

Евгений
22.06.2018
14:57:16
"object Object" === 0// false.

Google
Евгений
22.06.2018
14:57:37
но почему?)
Потому что в параметрах, блока кода быть не может. Только функция.

Oleg
22.06.2018
14:58:22
я это объяснение уже читал)

console.log({}) // {}

он же не делает тут toString



Евгений
22.06.2018
15:00:10
А когда идёт блок кода + [] происходит Number([]) и вызывается не toString а valueOf.

Вот тут я опять не понимаю.

console.log({}) // {}
Так, ну тут не вызывает скорее всего потому что ты не плюсуешь. Хотя не логично.

Oleg
22.06.2018
15:02:03


Евгений
22.06.2018
15:02:19
А это мне не понятно.

Oleg
22.06.2018
15:03:28


Nikita
22.06.2018
15:03:50
лол бляавх хавххАХВХАХВХА

Евгений
22.06.2018
15:04:15
Ну первое понятно, об этом я и говорю. str !== int(0)

Google
Евгений
22.06.2018
15:04:22
Но остальное поведение.

Oleg
22.06.2018
15:04:47
не, мне все еще непонятно почему если внести внутрь то будет стринг)

Евгений
22.06.2018
15:04:53
Не, второе тоже ясно, +[]//[].valueOf(0)

Oleg
22.06.2018
15:04:57
почему === 0 это уже давно понятно

а преобразование внутри лога чет не очевидное

Евгений
22.06.2018
15:05:10
Ибо блок кода внутри не допускается. Но почему не во всех случаях лог вызывает toString.

Евгений
22.06.2018
15:07:20
Oleg
22.06.2018
15:07:20
Лог никогда не вызывает toString
а что вызывает?) что там происходит?)

Dika
22.06.2018
15:07:26
Вызывает.
Покажи.

Eugene
22.06.2018
15:07:32
лог всегда превращает в тустринг

Евгений
22.06.2018
15:07:38
console.log([] + {} === 0)

Покажи.
Почему false?

Dika
22.06.2018
15:07:51
console.log([] + {} === 0)
Здесь + приводит к строке, а не лог

Евгений
22.06.2018
15:07:52
Потому что в итоге получается строка.

Точно.

Вот, оно, спасибо.

Доперло.

Google
Евгений
22.06.2018
15:08:25
Кхм.

Oleg
22.06.2018
15:08:49
Здесь + приводит к строке, а не лог
тогда в чем разница просто вызвать и вызвать внутри лога?

одинаковое же приведение должно быть

Евгений
22.06.2018
15:10:19
{} + []// блок кода(отбросим) в итоге получается +[] === 0 [] + {}// в итоге строка, ибо идёт два туСтригна. console.log({} + []) //плюс вызывает два туСтринга, получатся строка. console.log({})// туСтринг не вызван.

Dika
22.06.2018
15:10:28
тогда в чем разница просто вызвать и вызвать внутри лога?
внутри лога не может быть блока кода. Можно еще так: ([] + {} === 0)

Евгений
22.06.2018
15:10:42
тогда в чем разница просто вызвать и вызвать внутри лога?
В том что первый вызов это блок кода и [] у которого вызывается valueOf.

А в итоге, все «странное» поведение, вызывает консоль разработчика, которая воспринимает {} + [] как [code Block] ... [].prototype.valueOf//0

Dika
22.06.2018
15:14:00
и тупо игнорит code block?
ну блок пустой же

Евгений
22.06.2018
15:14:04
и тупо игнорит code block?
Ну он пустой же, что его выполнять.

Oleg
22.06.2018
15:14:31
+ [] /// 0 ?

Евгений
22.06.2018
15:14:38
Да.

Oleg
22.06.2018
15:14:47
console.log( + [] === 0 ) // true ?

Евгений
22.06.2018
15:14:49
Бинарный + вызывает valueOf.

Нет.

Vlad
22.06.2018
15:14:55
console.log([] + {} === 0)
https://habr.com/company/ruvds/blog/347866/

Oleg
22.06.2018
15:15:10
но console.log({} + [] === 0) // false

Google
Oleg
22.06.2018
15:15:18
значит он чет делает с этим гребаным блоком кода

Евгений
22.06.2018
15:15:19
console.log( + [] === 0 ) // true ?
В этом случае я так понял будет вызван toString и потом приведёт к числу.

но console.log({} + [] === 0) // false
Дак тут идёт объект плюс массив.

В логе не может быть блока.

Oleg
22.06.2018
15:15:51
тьфу бля

я думал вы про другое

{} + [] /// это просто как + []

Евгений
22.06.2018
15:16:30
Консоль разраба виновата, 100%.

Oleg
22.06.2018
15:16:34
{} игнорится

Евгений
22.06.2018
15:16:35
Именно.

Oleg
22.06.2018
15:16:38
все

допер

я то думал эта хуйня внутри лога

Евгений
22.06.2018
15:16:55
Длинноватое обсуждения. Зато интересное.

Плюс найден новый вопросы который проверяет понимания JS’а у человека.

Oleg
22.06.2018
15:17:22
теперь что тут?



Плюс найден новый вопросы который проверяет понимания JS’а у человека.
ну нахрен так людей мучить, тем более если на собеседовании

Евгений
22.06.2018
15:18:00
Так, надо попробовать явные преобразования.

Google
Евгений
22.06.2018
15:18:02
Щас.





При явном преобразовании вызывается valueOf у обоих.

Oleg
22.06.2018
15:19:11
а не

он тупо пустую строку возвращает

Евгений
22.06.2018
15:19:23
Просто лог сам ничего не вызывает у данных.

Oleg
22.06.2018
15:19:33
[] + [] = ""

Евгений
22.06.2018
15:19:41
он тупо пустую строку возвращает
Разве toString у пустого массива равен ""?

Oleg
22.06.2018
15:19:44
console.log("") -> пустая строка

Евгений
22.06.2018
15:20:37
Точно, у массива пустые.





По моему это не оч. Но траблу мы разобрали.

ну нахрен так людей мучить, тем более если на собеседовании
Чтобы не приходили всякие неугодные джуны и не рассказывали потом какой ЖС косячный. Шутка.

Oleg
22.06.2018
15:21:37
https://twitter.com/jplur_/status/891358168688754688

Alex
22.06.2018
15:21:58
Товарищи, подскажите, сделал mongodump, получил bson файл. Пытаюсь его разобрать с nodejs. Делаю bson.deserialize, но получаю только один элемент из базы (первый), хотя в bson файле их много.

Евгений
22.06.2018
15:23:32
https://twitter.com/jplur_/status/891358168688754688
Когда выскочила 3? Я немного офигел.

Чёткий рофель.

Я надеюсь, вы шутите
Шучу шучу. Но поиздеваться можно. :)

Gats
22.06.2018
15:37:54
подскажите почему может выдавать такую ошибку SequelizeDatabaseError: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘foretags.invoices.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Страница 2189 из 2748