Autor Tema: JavaScript, duda con prompt  (Leído 4516 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado llAudioslavell

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 12
  • -Receive: 3
  • Mensajes: 126
JavaScript, duda con prompt
« : 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 ?? 

Desconectado llAudioslavell

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 12
  • -Receive: 3
  • Mensajes: 126
Re: JavaScript, duda con prompt
« Respuesta #1 : febrero 26, 2012, 11:09:14 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 ??

Ya lo encontre.... parseInt(s) es como si dijera  Val(txtNumero.text) en VisualBasic.net ... disculpen  por esta pregunta .. !

Desconectado JaiMe

  • Global Moderator
  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 43
  • -Receive: 413
  • Mensajes: 1485
  • λ | h+
Re: JavaScript, duda con prompt
« Respuesta #2 : febrero 27, 2012, 12:18:41 am »
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!/
"Unless you try to do something beyond what you have already mastered, you will never grow."
― Ralph Waldo Emerson

Desconectado stoke

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 10
  • -Receive: 4
  • Mensajes: 342
Re: JavaScript, duda con prompt
« Respuesta #3 : febrero 27, 2012, 12:52:36 am »
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!

Desconectado JaiMe

  • Global Moderator
  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 43
  • -Receive: 413
  • Mensajes: 1485
  • λ | h+
Re: JavaScript, duda con prompt
« Respuesta #4 : febrero 27, 2012, 01:40:07 am »
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

Código: [Seleccionar]
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

Código: [Seleccionar]
2 + '10'        // '210'
'2' + 10        // '210'
2 + 2 + '10'    // '410'
2 + '2' + '10'  // '2210'


Pero tambien puede ser usado para convertir cadenas a numeros

Código: [Seleccionar]
+'10'      // regresa el numero 10
consequentemente podes hacer esto

Código: [Seleccionar]
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.
« Última Modificación: febrero 27, 2012, 01:55:10 am por JaiMe »
"Unless you try to do something beyond what you have already mastered, you will never grow."
― Ralph Waldo Emerson

Desconectado llAudioslavell

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 12
  • -Receive: 3
  • Mensajes: 126
Re: JavaScript, duda con prompt
« Respuesta #5 : febrero 27, 2012, 08:50:53 am »
waoo !! se ve  que me tomara un buen tiempo aprender este lenguaje de programacion ... Gracias a todos ^^  seguire practicando !!