¿Cuál es la diferencia entre ‘return false’ y ‘return’ cuando se intenta salir de una función?

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”.

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).

La diferencia es bastante sencilla.
Cuando especifica algo después de la declaración de devolución, ese algo se devuelve, y al especificar nada devuelve `undefined`, que es el sinónimo de` nothing` (o) `I don’t know` en JavaScript.

Ahora, donde se está utilizando es la verdadera preocupación.

Supongamos que desea que la función realice algunas manipulaciones y que desee verificar la falsedad de la manipulación en los parámetros de entrada, entonces ambos se pueden usar casi de la misma manera, y la codificación sería increíble con pocos trozos cortos como ,

isEmpty() && it_is_definitely_not_empty(" 😛 ")

Pero cuando la preocupación es un nivel más profundo, es decir, si va a realizar una manipulación estricta sobre el valor de retorno, como,

typeof isEmpty() === 'undefined'

entonces debes tener cuidado / molestarte por esto.

Además, cuando está dentro de un controlador de eventos, las funciones que inserta en la pila de controladores del evento esperan que haga `return false` estrictamente (para dejar de avanzar por la línea en la pila), en lugar de simplemente devolver una falsedad declaración como 0, nulo, indefinido. Mira este pequeño ejemplo de trabajo. http://jsfiddle.net/FTHb5/ .

return sin un valor return TRUE, es lo mismo que return true;

More Interesting

¿Por qué los desarrolladores de PHP aman a Laravel? ¿Cuáles son las cosas que distinguen a Laravel de otros frameworks PHP?

¿Hay algún sitio web del gobierno o de la universidad que use WordPress en India?

¿Cuáles son las cosas importantes que debe tener en cuenta al hacer un diseño web receptivo?

¿Dónde puedo encontrar estadísticas o datos de experiencias anteriores y posteriores con la creación de una donación optimizada para dispositivos móviles o un sitio de comercio electrónico? (Por ejemplo, después de crear un sitio de donación optimizado para dispositivos móviles, tuvimos x% más donaciones, o nuestras donaciones se mantuvieron igual o disminuyeron).

¿Cuál es el mejor camino para convertirse en un desarrollador web front-end sin PHP?

¿Cuáles son las ventajas de usar OpenVAS?

¿Cuál es la mejor manera de proteger una variable estática SECRET_KEY para un servidor web?

¿Cómo reanuda la reproducción bandcamp después de volver a abrir la página en Chrome?

¿Cuáles son los productos de software más demandados que se pueden construir utilizando tecnologías web?

¿Cuál tiene un mejor futuro, Android o desarrollo web?

¿Está buscando un sitio web rentable de WordPress para su negocio local?

¿Cuál es el mejor libro o recurso para introducir conceptos de diseño web / diseño gráfico?

Cómo aumentar el tiempo de carga de mi sitio web

¿Cuál es la mejor empresa de desarrollo de ASP.NET en Canadá?

¿Cuándo y por qué es mejor usar AngularJS para su sitio web en comparación con la programación del sitio utilizando, por ejemplo, HTML, CSS y PHP?