Cita: Estoy buscando un type of para javascript. Quiero comprobar que es lo que devuelve PHP: numero o cadena.
aqui me confundes, ¿o quieres hacerlo en php o en javascript? en javascript tienes el operador
typeof. en php tienes la funcion
gettype y no se si existe alguno mas.
Cita: (desde PHP lo imprimo con comillas, y debería ser cadena, pero al recibirlo... ya entro en duda.)
recuerda que
responseText siempre es de tipo string independientemente como devuelvas el contenido en php. si lo devuelves con comillas, en ajax obtienes un string con comillas. si evaluas ese contenido con
eval, javascript te devuelve un string porque esta evaluando un string que tiene comillas. si no tuviera comillas te devuelve un numero. para que lo puedas entender...
si en php devuelves
con comillas... ejemplo
"1"
Código:
responseText == "1";
// devuelve false porque responseText es un string con comillas
// "1" es un string literial de javascript
eval(responseText ) == "1";
// devuelve true porque estas evaluando el string de responseText
// por tanto, eval lee "1" del responseText y al evaluarlo devuelve un string "1"
si en php devuelves
sin comillas... ejemplo
1
Código:
responseText == "1";
// devuelve true, de nuevo responseText es un string y se esta comparando con un string literal de javascript
eval(responseText) == "1";
// devuelve true.
// en este caso particular eval lee 1 y lo converte a numero, entonces estas comparando un numero con un string literal
// pero automaticamente javascript convierte el numero a string porque esta comparando dos tipos de valores diferentes