azovl
@azovl

Строка не принадлежит объекту String в Javascript, почему?

Дано:
var strA = 'abc';
var strB = String('abc');


typeof strA; // 'string'
typeof strB; // 'string'


Почему false?
strA instanceof String; //false
strB instanceof String; //false
  • Вопрос задан
  • 2353 просмотра
Решения вопроса 2
AngReload
@AngReload
Кратко о себе
var strB = new String('abc');
strB instanceof String;

Найдете ошибку?
Ответ написан
standy
@standy
Более того, strA instanceof Object; //false
Зато
var strC = new String('abc');
strC instanceof String; //true

instanceof ищет по цепочке прототипов, поэтому он работает только для объектов, не для примитивов
https://developer.mozilla.org/en-US/docs/Web/JavaS...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Arik
Если не ошибаюсь,
typeof - это тип, а не принадлежность/наследние.
typeof может вернуть object, но это ведь не значит что объект Юзера?

function isString(s) {
    return typeof(s) === 'string' || s instanceof String;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы