El primero devuelve un tipo booleano falso mientras que el segundo devuelve “indefinido”. Puede ver la diferencia si está comparando por contenido Y tipo usando ===:
function treturn() { return false; } function nreturn() { return; } if (nreturn() === false) alert("Yes"); else alert("No");
Notará que el resultado es “No” ya que undefined no es un tipo booleano, sino la falta de un valor.
Aquí hay una cita del estándar ECMA 262, en el que se basa JavaScript, con respecto a la devolución ;. Como se señaló, el resultado es “indefinido”.
- ¿Cuál es la mejor empresa de diseño y desarrollo de sitios web en India?
- ¿PHP o Ruby son mejores para el desarrollo de stack completo?
- ¿Cuál es el mejor formato para la respuesta del servidor, XML o JSON?
- ¿Por qué usamos ?
- ¿Por qué no se recomienda CodeIgniter?
Un programa ECMAScript se considera sintácticamente incorrecto si contiene una declaración de devolución que no está dentro de un FunctionBody. Una instrucción return hace que una función deje de ejecutarse y devuelva un valor al llamante. Si se omite Expression, el valor de retorno no está definido. De lo contrario, el valor de retorno es el valor de Expression.
La producción
ReturnStatement: return [no LineTerminator aquí] Expressionopt;
se evalúa como:
1. Si la Expresión no está presente, regrese (retorno, indefinido, vacío).
2. Deje que exprRef sea el resultado de evaluar Expression.
3. Return (return, GetValue (exprRef), vacío).