Как я могу сделать следующее в JavaScript?
-
Объединить "1", "2", "3" в "123"
-
Преобразуйте "123" в 123
-
Добавить 123 + 100 = 223
-
Скрытый 223 в "223"
Как я могу сделать следующее в JavaScript?
Объединить "1", "2", "3" в "123"
Преобразуйте "123" в 123
Добавить 123 + 100 = 223
Скрытый 223 в "223"
Вы хотите познакомиться с 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" + "2" + "3"
или же
["1", "2", "3"].join("")
Метод join объединяет элементы массива в строку, помещая указанный разделитель между элементами. В этом случае "разделитель" представляет собой пустую строку (""
).
parseInt("123")
До ECMAScript 5 необходимо было передать основание для основания 10: parseInt("123", 10)
123 + 100
(223).toString()
(parseInt("1" + "2" + "3") + 100).toString()
или же
(parseInt(["1", "2", "3"].join("")) + 100).toString()
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 использовал какой-то символ, отличный от + для конкатенации строк.
Шаг (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. Чтобы преобразовать число в строку, добавьте "" (пустую строку).
5 + 1 даст вам 6
(5 + ") + 1 даст вам" 51"
( "5" - 0) + 1 даст вам 6
Параметр parseInt неверен, как scanf:
parseInt ( "12 обезьян" , 10) - это число со значением "12" + "12 обезьян" - это номер со значением "NaN" Число ( "12 обезьян" ) - это число со значением "NaN"
Ниже приведен очень раздражающий пример того, как 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