Не правельно складываются переменные js
let price1 = $('#1').text().replace(/[^0-9]/g, ''),
price2 = $('#2').text().replace(/[^0-9]/g, ''),
let sum = price1 + price2;
console.log(sum);
И все складывается как строковые значения, а мне нужно чтобы все складывалось как цыфры. Что делаю не так?
JavaScript
Не правельно складываются переменные js
replace всегда возвращает строку.
__________________________________________
let price1 = + $('#1').text().replace(/[^0-9]/g, '');
let price2 = + $('#2').text().replace(/[^0-9]/g, '');
let sum = price1 + price2;
console.log(sum);
__________________________________________
Это называется унарный плюс... превращает строку в число. Пустую строку превратит в 0, а если в строке будет что-то другое кроме цифр - будет NaN;
P.s. вместо [^0-9] можно написать replace(/\D/g, "")
\d — означает "цифра", а
\D — всё, кроме цифр.
P.s.-2 если где-то в коде есть хитрое выражение и не очевидно, что там делает плюс, можно превращать строку в число более явно,
let x = "" + 1 + ( Number("15") + 5 ) + " $";
console.log( x ) // "120 $"
__________________________________________
let price1 = + $('#1').text().replace(/[^0-9]/g, '');
let price2 = + $('#2').text().replace(/[^0-9]/g, '');
let sum = price1 + price2;
console.log(sum);
__________________________________________
Это называется унарный плюс... превращает строку в число. Пустую строку превратит в 0, а если в строке будет что-то другое кроме цифр - будет NaN;
P.s. вместо [^0-9] можно написать replace(/\D/g, "")
\d — означает "цифра", а
\D — всё, кроме цифр.
P.s.-2 если где-то в коде есть хитрое выражение и не очевидно, что там делает плюс, можно превращать строку в число более явно,
let x = "" + 1 + ( Number("15") + 5 ) + " $";
console.log( x ) // "120 $"
Александр Пономаренко
блин, спасибо вам большое
Нет ты всё делаешь правильно, не переживай ты большой молодец.
Но вот только JS при сложении строк, он складывает не числа а строки, все что получаешь из текстовых полей, из содержимого элемента, все они попадаются в виде строковых значений.
В JS бинарный оператор + используется для конкатенации строк и сложения чисел, если хотя бы один из операндов + является строкой, то и все другие будут преобразованы к строке, а уже потом будут объединяться в одну строку.
Для решения этой проблемы используй знания по приведению типов.
Изучай JS видно что ты его даже не ИЗУЧАЛ или если изучал то плохо осваивал темы.
Прежде чем переться кодить на фреймворке изучи сам язык на достаточном уровне и попрактикуйся без фреймворков. Многие веб-макаки до конца не изучив JS прутся делать что-то на фреймворках и считают себя богами программирования.
learn.javascript.ru - ресурс который поможет изучить JavaScript от нуля до про.
Но вот только JS при сложении строк, он складывает не числа а строки, все что получаешь из текстовых полей, из содержимого элемента, все они попадаются в виде строковых значений.
В JS бинарный оператор + используется для конкатенации строк и сложения чисел, если хотя бы один из операндов + является строкой, то и все другие будут преобразованы к строке, а уже потом будут объединяться в одну строку.
Для решения этой проблемы используй знания по приведению типов.
Изучай JS видно что ты его даже не ИЗУЧАЛ или если изучал то плохо осваивал темы.
Прежде чем переться кодить на фреймворке изучи сам язык на достаточном уровне и попрактикуйся без фреймворков. Многие веб-макаки до конца не изучив JS прутся делать что-то на фреймворках и считают себя богами программирования.
learn.javascript.ru - ресурс который поможет изучить JavaScript от нуля до про.
Похожие вопросы
- Работа с переменными JS
- Можно ли именовать переменную в JS?
- Помогите определиться с выбором нового языка (JS(TS) vs Java)
- Js фреймворки, что полезного можно для себя найти?
- Не могу понять выражение Упростите на JS условие if(i-- && xx + yy <= 4 ), когда все переменные- числа!
- JS - как узнать, сколько раз переменная содержится в массиве?
- Js. Кто может пояснить как это работает? Переменная s не инициализированна же. Но тем не менее работает..
- Как объявить глобальную переменную внутри функции в js?
- В чем цель фреймворков js web?
- Переменные окружения Node JS