console.log("1" + 4 - "7")  //what do you think? what the ans is? error?

Не беспокойтесь, это обычное предположение! 😄🎲 Многие могут предположить, что ответ «7» — это строка или ошибка и т. д., и в этом нет ничего постыдного. До открытия этой концепции мой ответ был таким же! Давайте погрузимся и раскроем правду вместе! 🚀💡

И я обещаю вам, что до того, как вы закончите читать эту статью, вы будете УВЕРЕННЫМИ в ответах на любой вопрос, связанный с оператором вычитания.

Приготовьтесь к потрясающему откровению!

В JavaScript, мастере динамической типизации, есть удивительная хитрость, которая вызовет у вас благоговейный трепет. Когда он встречает строку во время вычитания, он раскрывает свою магию и выполняет специальное секретное преобразование.

Эммм…? Специальное секретное преобразование?

Да, вы правильно прочитали! JavaScript тайно преобразует строки в числа! 🧙‍♂️ И вот в чем хитрость: на помощь приходит могучий унарный оператор плюс (+). На ваших глазах строка "7" изящно преобразуется в числовое значение 7. Это настоящее волшебство! 🌈🦄

Вот что происходит в коде:

console.log("1" + 4 - "7")  //step 1 "1" + 4 -> "14"
                            //step 2  "14" - "7" -> 7
                              Here type conversion takes place (:

Любознательные умы могут удивиться, почему оператор сложения не запускает это преобразование типа. Если у вас возник этот вдумчивый вопрос во время чтения, мой друг, ответ ждет вас!

Я джаваскрипт. Нет, это не ваш ответ, но, возможно, вы слышали этот термин «конкатенация»? правильно, и мы делаем это с помощью оператора (+).

Оператор (+) выполняет преобразование типов только тогда, когда он используется правильно:

let a = "7"
console.log(+a)  //pause and think of the output

Леди и джентльмены, приготовьтесь к барабанной дроби… и результат… та-да! Это магическое число 7, а не строки! Да, и вычитание, и сложение действительно выполняют преобразование типов, но они действуют по-разному.

Большой! Пришло время увлекательного задания! Приготовьтесь погрузиться в мир JavaScript и проверить свои навыки.

const numStr = "123";
const NumStr = "8";
const result1 = +numStr - 10;
const result2 = NumStr - 10;
console.log(result1); 
console.log(result2);

Попробуйте! Угадайте, какой будет результат, прежде чем запускать код. Если ваша догадка верна, поздравляю, вы поняли концепцию! Если нет, не беспокойтесь, просто вернитесь к статье, чтобы получить полезное напоминание! (:

Откройте путь к волшебству JavaScript! 🔮✨ Присоединяйтесь ко мне на LinkDn и отправляйтесь в путешествие, наполненное умопомрачительными концепциями JavaScript. 🚀🧙‍♂️ Раскройте свой потенциал программирования, и вместе мы покорим царство тайн JavaScript! Не упустите эту волшебную возможность! 💫😊

Img кредит — https://www.kickstarter.com/projects/getify/you-dont-know-js-yet-second-edition-books