Size: a a a

2020 May 07

IT

Ivan Tytarenko in Frontend UA
он же поймет какой ему примитив передали
источник

AN

Anton Nemtsev in Frontend UA
Странный вопрос:
https://tc39.es/ecma262/#sec-tobigint
спека говорит что попытка закастить Number в BigInt должна вызвать TypeError, но этого не происходит.
Дело в том, что оно сначала должно вызвать ToPrimitive(argument, hint Number)?
Но Number.prototype[Symbol.toPrimitive]undefined
источник

AN

Anton Nemtsev in Frontend UA
Ivan Tytarenko
т.е. если бы ты вызывал обычную функцию без new - она бы записала в свой this проперти, которые там тебе нужны. А с new - в переданный ей объект.
С Object это не сработает, т.к. Object сам по себе вернет объект. Но общая логика работы останется такой же

Но это я спекулирую, по правде говоря
спасибо
источник

AN

Anton Nemtsev in Frontend UA
Kyrylo Yakovenko • 𝟰𝟮𝟬🦄 engineer
Может разница в instanceof?
Object("3") instanceof Object
true
(new Object("3")) instanceof Object
true
источник

AN

Anton Nemtsev in Frontend UA
Kyrylo Yakovenko • 𝟰𝟮𝟬🦄 engineer
Может разница в instanceof?
(new Object("3")) instanceof String
true
(Object("3")) instanceof String
true
источник

IT

Ivan Tytarenko in Frontend UA
Anton Nemtsev
Object("3") instanceof Object
true
(new Object("3")) instanceof Object
true
сравни со String, будет truee тоже
источник

IT

Ivan Tytarenko in Frontend UA
т.к. String инстанс от объеккта
источник

AN

Anton Nemtsev in Frontend UA
угу
источник

AN

Anton Nemtsev in Frontend UA
Что скажете п оповоду BigInt?
источник

AN

Anton Nemtsev in Frontend UA
@shvaikalesh может ты подскажешь?
источник

IT

Ivan Tytarenko in Frontend UA
Скажу, что ты хочешь найти Symbol.toPrimitive на обычном объекте, а его там нет.

А ToPrimitive - это абстрактная операция
источник

IT

Ivan Tytarenko in Frontend UA
отстутствие toPrimitive можно проверить через Reflect.ownKeys
источник

AN

Anton Nemtsev in Frontend UA
cпасибо, make sense.
источник

AN

Anton Nemtsev in Frontend UA
тоесть на деле оно просто последовательно применяет
"valueOf", "toString"
источник

IT

Ivan Tytarenko in Frontend UA
возможно. Это уже вопрос реализации языка
источник

AN

Anton Nemtsev in Frontend UA
3..valueOf
источник

IT

Ivan Tytarenko in Frontend UA
с числом - да. Т.к. это не экзотический объект. А какая-то Date - вызовется символ
источник

KY

Kyrylo Yakovenko • 𝟰... in Frontend UA
Ivan Tytarenko
Скажу, что ты хочешь найти Symbol.toPrimitive на обычном объекте, а его там нет.

А ToPrimitive - это абстрактная операция
но его можно определить через Symbol.toPrimitive
источник

IT

Ivan Tytarenko in Frontend UA
Kyrylo Yakovenko • 𝟰𝟮𝟬🦄 engineer
но его можно определить через Symbol.toPrimitive
можно. И ты в итоге получишь экзотический объект, который ты сделал своими руками
источник

KY

Kyrylo Yakovenko • 𝟰... in Frontend UA
ну конечно я не про Object
источник