¿Cómo puedo hacer lo siguiente en JavaScript?
Concatenar "1", "2", "3" en "123"
Convertir "123" en 123
Sumar 123 + 100 = 223
Convierte 223 en "223"
javascript
string
numbers
user366312
fuente
fuente
Respuestas:
Quiere familiarizarse con
parseInt()
ytoString()
.Y será útil en su kit de herramientas mirar una variable para averiguar qué tipo es
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>
fuente
Paso (1) Concatenar "1", "2", "3" en "123"
"1" + "2" + "3"
o
["1", "2", "3"].join("")
El método de unión concatena los elementos de una matriz en una cadena, colocando el delimitador especificado entre los elementos. En este caso, el "delimitador" es una cadena vacía (
""
).Paso (2) Convierta "123" en 123
parseInt("123")
Antes de ECMAScript 5 , era necesario pasar la base para la base 10:
parseInt("123", 10)
Paso (3) Suma 123 + 100 = 223
123 + 100
Paso (4) Convierta 223 en "223"
(223).toString()
Ponlo todo junto
(parseInt("1" + "2" + "3") + 100).toString()
o
(parseInt(["1", "2", "3"].join("")) + 100).toString()
fuente
parseInt
función .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);
fuente
Estas preguntas surgen todo el tiempo debido al sistema de escritura de JavaScript. La gente piensa que está obteniendo un número cuando obtiene la cadena de un número.
Aquí hay algunas cosas que puede ver que aprovechan la forma en que JavaScript maneja cadenas y números. Personalmente, desearía que JavaScript hubiera usado algún símbolo que no sea + para la concatenación de cadenas.
Paso (1) Concatenar "1", "2", "3" en "123"
result = "1" + "2" + "3";
Paso (2) Convierta "123" en 123
result = +"123";
Paso (3) Suma 123 + 100 = 223
result = 123 + 100;
Paso (4) Convierta 223 en "223"
result = "" + 223;
Si sabe POR QUÉ funcionan, es menos probable que se meta en problemas con las expresiones de JavaScript.
fuente
Puedes hacerlo así:
// 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"
fuente
0
se verán como números octales (base 8) .0
y luego contienen8
o9
fallarán, dando lugar a un retorno de 0. Por ejemplo,,parseInt('034') = 28
yparseInt('09') = 0
.Para convertir una cadena en un número, reste 0. Para convertir un número en una cadena, agregue "" (la cadena vacía).
5 + 1 te dará 6
(5 + "") + 1 te dará "51"
("5" - 0) + 1 le dará 6
fuente
parseInt está mal presentado como scanf:
fuente
A continuación se muestra un ejemplo muy irritante de cómo JavaScript puede causarle problemas:
Si solo intenta usar
parseInt()
para convertir a un número y luego agrega otro número al resultado, concatenará dos cadenas.Sin embargo, puede resolver el problema colocando la expresión de suma entre paréntesis, como se muestra en el siguiente ejemplo.
Resultado: Su suma de edad es: 98; Su suma de edad NO es: 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>
fuente
Lo más simple es cuando quieres convertir un entero en una cadena
var a,b, c; a = 1; b = a.toString(); // This will give you string
Ahora, de la variable b que es de tipo cadena podemos obtener el entero
c = b *1; //This will give you integer value of number :-)
Si desea marcar arriba hay un número. Si no está seguro de si b contiene un número entero, puede usar
if(isNaN(c*1)) { //NOt a number } else //number
fuente
Podemos hacer esto usando un operador unario más para convertirlos a números primero y simplemente sumarlos. vea abajo:-
var a = "4"; var b = "7"; var sum = +a + +b;
fuente