Как "instanceof" примитивная строка (строковый литерал) в JavaScript
В JavaScript я могу объявить строку следующими способами;
var a = "Hello World";
var b = new String("Hello World");
но это не экземпляр String...
console.log(a instanceof String); //false;
console.log(b instanceof String); //true;
Так как вы находите тип или "instanceof
"строковый литерал?
Может ли JavaScript быть вынужден создать new String()
для каждого строкового литерала?
3 ответа
Использование typeof
вместо этого и просто сравните полученную строку. Смотрите документы для деталей.
Там нет необходимости писать new String()
создать новую строку. Когда мы пишем var x = 'test';
заявление, оно создает x
как строка из примитивного типа данных. Мы не можем прикрепить пользовательские свойства к этому x
как мы делаем с литералом объекта. то есть. x.custom = 'abc';
x.custom
даст неопределенное значение. Таким образом, в соответствии с нашей потребностью нам нужно создать объект. new String()
создаст объект с typeof()
Объект, а не строка. Мы можем добавить пользовательские свойства для этого объекта.