Преобразование строки и номера JavaScript

Как я могу сделать следующее в JavaScript?

  • Объединить "1", "2", "3" в "123"

  • Преобразуйте "123" в 123

  • Добавить 123 + 100 = 223

  • Скрытый 223 в "223"

Ответ 1

Вы хотите познакомиться с 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>

Ответ 2

Шаг (1) Объединение "1", "2", "3" в "123"

 "1" + "2" + "3"

или же

 ["1", "2", "3"].join("")

Метод join объединяет элементы массива в строку, помещая указанный разделитель между элементами. В этом случае "разделитель" представляет собой пустую строку ("").


Шаг (2) Преобразовать "123" в 123

 parseInt("123")

До ECMAScript 5 необходимо было передать основание для основания 10: parseInt("123", 10)


Шаг (3) Добавить 123 + 100 = 223

 123 + 100


Шаг (4) Covert 223 в "223"

 (223).toString() 


Put It All Togther

 (parseInt("1" + "2" + "3") + 100).toString()

или же

 (parseInt(["1", "2", "3"].join("")) + 100).toString()

Ответ 3

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);

Ответ 4

Эти вопросы возникают постоянно из-за системы ввода текста. Люди думают, что получают номер, когда получают строку числа.

Вот некоторые вещи, которые вы можете увидеть, чтобы воспользоваться тем, как 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.

Ответ 5

Вы можете сделать это следующим образом:

// 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"

Ответ 6

Чтобы преобразовать строку в число, вычтите 0. Чтобы преобразовать число в строку, добавьте "" (пустую строку).

5 + 1 даст вам 6

(5 + ") + 1 даст вам" 51"

( "5" - 0) + 1 даст вам 6

Ответ 7

Параметр parseInt неверен, как scanf:

parseInt (  "12 обезьян" , 10) - это число со значением "12" 
+ "12 обезьян" - это номер со значением  "NaN" 
Число (  "12 обезьян"  ) - это число со значением  "NaN" 

Ответ 8

Ниже приведен очень раздражающий пример того, как 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>

Ответ 9

Простейшим является если вы хотите сделать целым числом строку

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