Hola
caricatos y
tunait, gracias por escribir.
Cita:
Iniciado por caricatos Me parece que estás confundiendo un poco los conceptos, ya que el operador OR es un operador lógico, entonces las operaciones que no son lógicas posiblemente traten de de resolverse con algún criterio pre-establecido...
Ese criterio pre-establecido es el que espero encontrar, pero de momento no sé cual es...
Cita:
Iniciado por caricatos Te propongo que añadas en tus pruebas otro elemento:
var bool = new Array();
bool[false] = "falso";
bool[true] = "cierto";
Si pruebas pones los resultados de las operaciones como índice de la nueva variable, verás que casi todos los ejemplos devuelven el valor undefined...
Lo siento, no he entendido lo que has querido decir aquí. ¿En qué consisten las pruebas que debo hacer?
Cita:
Iniciado por caricatos Supongo que sabes que también existe la operación or a nivel de bits (creo que es con una sola barra (15 | 15.5)...
Sí, pero esas operan a nivel de bits dando resultados que dificilmente se pueden predecir si no hacemos cálculos raros (
15 | 20 =
31). Aún nunca le he encontrado utilidad práctica a ésto en nada de lo que he llevado a cabo (¿vosotros?)
Código PHP:
01111 (15)
10100 (20)
--------
11111 (31)
Aunque el operador a nivel de bits funciona bien por lo menos para los números (
34 |
undefined =
34), para los strings (
"hola" |
undefined =
0 ); así que no serviría para lo mismo...
Cita:
Iniciado por tunait Por los ejemplos que has dejado lo que interpreto es que no está evaluando ambos valores si no únicamente el primero y escoge este si devuelve false y si no el segundo, independientemente de lo que valga o devuelva el segundo.
Exacto, es ése su funcionamiento. Supongo que habría que quedarse con esta idea, he probado con todos los tipos: Number, Number negativo, String, String vacío, NaN, undefined, 0, Object vacío, Object lleno, Booleans... Y las únicas anomalías las he encontrado son esas que crearon el primer mensaje.
Bueno, si averiguo más os comento.
Un saludo a los dos