Sv Community El Salvador
Soporte y Tecnología => Programación => Scripts => Mensaje iniciado por: llAudioslavell en febrero 26, 2012, 10:51:51 pm
-
Hola a todos ^^ "
Hoy empeze a iniciarme con JavaScript, estoy leendo tutoriales y pues empeze a resolver algunos Algoritmos sencillisimos, pero me surgio un problemita...
var sN;
var s = prompt("Ingrese su sueldo: ","");
sN = s + 1
este no es el algoritmo que estoy resolviendo xD, lo digo porsiacaso :D , .. solo lo hize como muestra..
al realizar esto "s + 1" lo que hace es concatenar los valores, mas no sumarlos :S .. se que en JS el signo "+" sirve para concatenar cadenas mas no numeros, la variable "s" contendra un valor numerico que sera ingresado... creo que es por estas comillas, prompt("Ingrese su sueldo: ",""); , lo que lo convierte a cadena ??
-
Hola a todos ^^ "
Hoy empeze a iniciarme con JavaScript, estoy leendo tutoriales y pues empeze a resolver algunos Algoritmos sencillisimos, pero me surgio un problemita...
var sN;
var s = prompt("Ingrese su sueldo: ","");
sN = s + 1
este no es el algoritmo que estoy resolviendo xD, lo digo porsiacaso :D , .. solo lo hize como muestra..
al realizar esto "s + 1" lo que hace es concatenar los valores, mas no sumarlos :S .. se que en JS el signo "+" sirve para concatenar cadenas mas no numeros, la variable "s" contendra un valor numerico que sera ingresado... creo que es por estas comillas, prompt("Ingrese su sueldo: ",""); , lo que lo convierte a cadena ??
Ya lo encontre.... parseInt(s) es como si dijera Val(txtNumero.text) en VisualBasic.net ... disculpen por esta pregunta .. !
-
Que bien que lo solucionaste, solo recomiendo que siempre que uses parseInt pases el radix, por ejemplo si queres el sueldo base 10 usa
parseInt(s, 10);
hace dias respondi algo similar http://www.svcommunity.org/forum/programacioacuten/ayuda-javascript!/ (http://www.svcommunity.org/forum/programacioacuten/ayuda-javascript!/)
-
Investiga sobre la funcion isNaN, valida si es una expresion numerica, hay otra forma de convertir un texto en cadena, con el parseInt, te devuelve un entero(sin decimales), lo podes hacer utilizando la clase Number, de esta forma
var numero = new Number(expresion);
Suerte!
-
isNaN es aceptable para evaluar si una expresion es candidata para ser convertida a un numero.
Pero, nunca uses el constructor number, es considerado un antipattern. hay dos razones, el constructor es mas lento que parseInt y regresa un objeto de tipo Object.
Ejemplo
typeof 10; // 'number'
typeof parseInt('10', 10); // 'number'
typeof new Number('10'); // 'object' <- Object no me dice nada valioso
* typeof no es libre de defectos...
Expandiendo un poco, sobre el operador +
El operador + usualmente convierte numeros a cadenas cuando uno de los operandos es una cadena de texto y los concatena
2 + '10' // '210'
'2' + 10 // '210'
2 + 2 + '10' // '410'
2 + '2' + '10' // '2210'
Pero tambien puede ser usado para convertir cadenas a numeros
+'10' // regresa el numero 10
consequentemente podes hacer esto
2 + +'10' // 12
+'2' + 10 // 12
2 + 2 + +'10' // 14
2 + +'2' + +'10' // 14
En términos técnicos el operador + hace type cohersion, es decir que intentara cambiar el operando a un tipo numerico cuando se utiliza de esta manera.
Si, JavaScript es f*cking raro y no recomiendo escribir codigo asi para cosas serias. Quedate con parseInt.
-
waoo !! se ve que me tomara un buen tiempo aprender este lenguaje de programacion ... Gracias a todos ^^ seguire practicando !!