-
Notifications
You must be signed in to change notification settings - Fork 643
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Добавляет ответ на Вопрос для собеседования: Значение какого типа возвращает оператор typeof и почему? #5134
Добавляет ответ на Вопрос для собеседования: Значение какого типа возвращает оператор typeof и почему? #5134
Conversation
…вращает оператор typeof и почему?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Отлично, спасибо :)
Привет, Возможно более коректным был бы вопрос: |
Я думаю, что нормальная постановка, т.к. в начале сказано, что возвращает строку, а далее идет уточнение. |
@HellSquirrel что думаешь? Мерджим? |
@vitya-ne Да, совершенно верно - вопрос с западнёй. Потому что многие думают, что |
Я бы ещё добавил описание для не очень очевидного поведения при использовании const str1 = new String('я строка')
const str2 = String('я тоже строка')
console.log(typeof str1)
// object
console.log(typeof str2)
// string @alexafcode, @gvozdenkov, @HellSquirrel, @skorobaeus что думаете ? |
…b.com/alexafcode/content into alexafcode-interviews/typeof-operator
Добавил важный момент с работой через new |
Превью контента из a63e2a8 опубликовано. |
Кажется, что это слишком экзотический и не жизненный пример... Никто строку не создаёт ни одним из этих способов. Пример забавный, но уж слишком теоретический. По мне, важнее дать отсылку на спецификацию, и то, что typeof возвращает строку тупо по таблице соответствия. Чтобы не наводить новичков на мысли, что js очень нелогичный и мистический язык%} Я бы лучше предложил раскрыть тему про https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor Это, на мой взгляд, куда более крутая альтернатива, чем typeof.
|
Это вообще не альтернатива. А метод Object. Если необходимо сравненивать типы, то можно использовать instanseof |
Да нет, всё отлично показывает что есть что: var x = 25;
x.constructor // Number
var str = 'hello'
str.constuctor // String
var bool = true;
bool.constructor // Boolean
Потому что не надо смешивать понятия. Мы проверяем тип (какой конструктор создал объект) или вообще факт существования значения? var x;
if (x && x.constructor === Number) {
console.log(x); // ничего не выведено
}
x = 25;
if (x && x.constructor === Number) {
console.log(x); // 25
} |
Повторюсь ещё раз. |
Хорошо, вопрос - как у "примитивного" значения могут быть методы? var str = 'hello';
str.slice(1); // "ello"
Можешь ссылку на этот механизм дать? В спеке и в материалах про V8 я ничего про это не нашёл |
Никак.
MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object#object_coercion |
Очень интересная дискуссия. Вы молодцы :) PRчик сейчас помержим |
Добавляет ответ на Вопрос для собеседования: Значение какого типа возвращает оператор typeof и почему?
Описание
Closes #5065
Чек-лист
/css/color/
,/tools/json/
,/tools/gulp/#kak-ponyat
)images/example.png
,demos/example/
,../demos/example/
)