Как я могу сделать следующее в JavaScript?
Объединить «1», «2», «3» в «123»
Преобразовать «123» в 123
Складываем 123 + 100 = 223
Преобразовать 223 в "223"
javascript
string
numbers
user366312
источник
источник
Ответы:
Вы хотите познакомиться с
parseInt()
иtoString()
.В вашем наборе инструментов будет полезно посмотреть на переменную, чтобы узнать, какой она тип
typeof
:<script type="text/javascript"> /** * print out the value and the type of the variable passed in */ function printWithType(val) { document.write('<pre>'); document.write(val); document.write(' '); document.writeln(typeof val); document.write('</pre>'); } var a = "1", b = "2", c = "3", result; // Step (1) Concatenate "1", "2", "3" into "123" // - concatenation operator is just "+", as long // as all the items are strings, this works result = a + b + c; printWithType(result); //123 string // - If they were not strings you could do result = a.toString() + b.toString() + c.toString(); printWithType(result); // 123 string // Step (2) Convert "123" into 123 result = parseInt(result,10); printWithType(result); // 123 number // Step (3) Add 123 + 100 = 223 result = result + 100; printWithType(result); // 223 number // Step (4) Convert 223 into "223" result = result.toString(); // printWithType(result); // 223 string // If you concatenate a number with a // blank string, you get a string result = result + ""; printWithType(result); //223 string </script>
источник
Шаг (1) Объедините «1», «2», «3» в «123»
"1" + "2" + "3"
или
["1", "2", "3"].join("")
Метод соединения объединяет элементы массива в строку, помещая указанный разделитель между элементами. В этом случае «разделитель» - это пустая строка (
""
).Шаг (2) Преобразуйте «123» в 123
parseInt("123")
До ECMAScript 5 необходимо было передавать основание системы счисления 10:
parseInt("123", 10)
Шаг (3) Складываем 123 + 100 = 223
123 + 100
Шаг (4) Преобразование 223 в "223"
(223).toString()
Положите все в тогтер
(parseInt("1" + "2" + "3") + 100).toString()
или
(parseInt(["1", "2", "3"].join("")) + 100).toString()
источник
parseInt
функции .r = ("1"+"2"+"3") // step1 | build string ==> "123" r = +r // step2 | to number ==> 123 r = r+100 // step3 | +100 ==> 223 r = ""+r // step4 | to string ==> "223" //in one line r = ""+(+("1"+"2"+"3")+100);
источник
Эти вопросы возникают постоянно из-за системы набора текста в JavaScript. Люди думают, что получают число, когда получают строку числа.
Вот некоторые вещи, которые вы можете увидеть, используя то, как JavaScript работает со строками и числами. Лично мне хотелось бы, чтобы в JavaScript для конкатенации строк использовался какой-то другой символ, кроме + .
Шаг (1) Объедините «1», «2», «3» в «123»
result = "1" + "2" + "3";
Шаг (2) Преобразуйте «123» в 123
result = +"123";
Шаг (3) Складываем 123 + 100 = 223
result = 123 + 100;
Шаг (4) Преобразование 223 в "223"
result = "" + 223;
Если вы знаете, ПОЧЕМУ это работает, у вас меньше шансов столкнуться с проблемами с выражениями JavaScript.
источник
Сделать это можно так:
// step 1 var one = "1" + "2" + "3"; // string value "123" // step 2 var two = parseInt(one); // integer value 123 // step 3 var three = 123 + 100; // integer value 223 // step 4 var four = three.toString(); // string value "223"
источник
0
будут отображаться как восьмеричные числа (с основанием 8) .0
а затем содержащие8
или не9
будут выполнены, что приведет к возврату 0. Например,,parseInt('034') = 28
иparseInt('09') = 0
.Чтобы преобразовать строку в число, вычтите 0. Чтобы преобразовать число в строку, добавьте «» (пустая строка).
5 + 1 даст вам 6
(5 + "") + 1 даст вам "51"
("5" - 0) +1 даст вам 6
источник
parseInt ошибочен, как scanf:
источник
Ниже приведен очень раздражающий пример того, как JavaScript может доставить вам неприятности:
Если вы просто попытаетесь использовать
parseInt()
для преобразования в число, а затем добавить еще одно число к результату, он объединит две строки.Однако вы можете решить проблему, заключив выражение суммы в круглые скобки, как показано в примере ниже.
Результат: Их возрастная сумма: 98; Их возрастная сумма НЕ: 5048
<!DOCTYPE html> <html> <body> <p id="demo"></p> <script> function Person(first, last, age, eye) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eye; } var myFather = new Person("John", "Doe", "50", "blue"); var myMother = new Person("Sally", "Rally", 48, "green"); document.getElementById("demo").innerHTML = "Their age sum is: "+ (parseInt(myFather.age)+myMother.age)+"; Their age sum is NOT: " + parseInt(myFather.age)+myMother.age; </script> </body> </html>
источник
Самый простой - это когда вы хотите сделать целое число строкой
var a,b, c; a = 1; b = a.toString(); // This will give you string
Теперь из переменной b типа string мы можем получить целое число
c = b *1; //This will give you integer value of number :-)
Если вы хотите проверить, это число. Если вы не уверены, что b содержит целое число, вы можете использовать
if(isNaN(c*1)) { //NOt a number } else //number
источник
Мы можем сделать это, используя унарный оператор плюс, чтобы сначала преобразовать их в числа и просто сложить. увидеть ниже:-
var a = "4"; var b = "7"; var sum = +a + +b;
источник