Задать вопрос
meltmestnt
@meltmestnt
У верблюда два горба, потому что жизнь - борьба

У примитивных значений тоже есть методы?

Не могу понять : в JS есть 2 типа: объекты и примитивные значения. Если у объектов есть методы и свойства, то у примитивов их нет. Но когда мы создаем строку: var str = 'Hello World'
мы можем использовать методы этой (для этой?) строки: str.slice(0, 3)
означает ли это то что у примитивной строки тоже есть методы? Объясните как это работает.
И еще: почему этот код выдает ошибку:
var text = 'Привет мир'; alert(text.slice(0,5) += '...');
  • Вопрос задан
  • 138 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 4
Krasnodar_etc
@Krasnodar_etc
fundraiseup
Вот тут нормальное описание ответа, я думаю
Ответ написан
Комментировать
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
По поводу объектных оберток MaxKorz уже дал хороший ответ, поэтому отвечу лишь на вторую часть, насчет оператора +=
Данный оператор является по сути оператором присваивания, а у оператором присваивания левым операндом может быть только переменная, в Вашем же примере слева выражение text.slice(0,5)
Ответ написан
Комментировать
@afanasiyz
Javascript-разработчик
В JS 7 типов данных:
Number, String, Object, null, undefined, boolean - это старые.
В ES6 добавился седьмой - Symbol.

Кантор (learn.javascript.ru) рассказывал где-то, что в момент, когда мы к примитиву обращаемся как к объекту
str.slice(0, 3)
Происходит неявное создание объекта, используется его метод, а потом объект удаляется.
Ответ написан
Комментировать
@Flying
В JavaScript есть 6 примитивных типов данных, не имеющих методов: boolean, null, undefined, Number, String, Symbol. Тем не менее для примитивного типа String разрешается вызов методов объекта String, в этом случае просто создаётся временный объект String со значением примитивного типа.

Вообще рекомендую JavaScript Guide на MDN, там много интересного.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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