Эта статья представляет собой расшифровку моей бесплатной серии YouTube об основах веб-разработки. Если вы предпочитаете смотреть, а не читать, посетите мой канал Dev Newbs.

Здравствуйте, мои коллеги-разработчики! Я Джейкоб, и это последний метод серии встроенных объектов String. Не всегда было легко заставить себя сделать очередную статью вовремя — тем более, что их почти никто не смотрит. Но если вы хотите сделать это, вы не можете сдаться, поэтому я не стал, и вот мы здесь. Сегодняшний метод называется valueOf(), и он станет хорошим завершением нашей серии. Давайте погрузимся прямо в!

Метод valueOf() возвращает примитивное значение объекта String.

По сути, он эквивалентен другому методу String, который называется toString(). У него нет никаких входных параметров, поэтому он автоматически входит в число моих фаворитов.

Обычно этот метод вызывается внутри самого JavaScript, а не явно в коде. Но это не значит, что мы не будем проверять это на нашем примере. о нет! Наоборот. Итак, приступим.

Смотрим пример 1.

// String object in variable
let strVar1 = new String("Hi Newbs!");
strVar1.valueOf()                                 // Hi Newbs!
// primitive string value in variable
let strVar2 = "Hi Newbs!";                        // Hi Newbs!
strVar2.valueOf()
// explicitly declared string value
"Hi Newbs!".valueOf()                             // Hi Newbs!
// confirmation that all the results are equal in both value & type
strVar1.valueOf() === strVar2.valueOf()             // true
strVar2.valueOf() === "Hi Newbs!".valueOf()         // true
"Hi Newbs!".valueOf() === strVar1.valueOf()         // true

Первые три случая показывают, что на самом деле не имеет значения, как вы указываете свою строку. Это может быть переменная объекта String, примитивное строковое значение или даже явное значение, вызывающее метод. Результаты остаются теми же, пока значение строки остается тем же.

Это подчеркивается подтверждающей частью примера ниже, где я сравнил каждую комбинацию из 3 результатов. Он всегда равен как по значению, так и по типу.

Единственное, что я хочу упомянуть, это то, что вы не можете вызывать метод valueOf() ни с чем, о чем вы думаете. Если вы используете, например, «null» или «undefined», они выдадут TypeError. Запомни.

try {
    console.log(null.valueOf());
}
catch(err){
    console.log(err);
}
// OUTPUT:
// TypeError: Cannot read property 'valueOf' of null
try {
    console.log(undefined.valueOf());
}
catch(err){
    console.log(err);
}
// OUTPUT:
// TypeError: Cannot read property 'valueOf' of undefined

И вот оно. Последний метод объекта String завершен. Осталось только поблагодарить вас, если вы продолжили смотреть и дошли до самого конца сериала. Но не бойтесь — это еще не конец. Мои глаза прикованы к другому объекту, который стоит скрыть. Вам решать, какой именно, а мне вас удивить.

Как всегда — спасибо за внимание и время, потраченное на то, чтобы смотреть, как я бормочу по-английски. До скорой встречи с новой серией Основ JS.