javascript

La variable booleana regresa como una cadena de la función javascript



(2)

¿Por qué es que cuando regreso, lo que creo que es una variable booleana de una función de JavaScript, se detecta en la función de llamada como una cadena, pero si devuelvo un literal booleano, la función de llamada lo detecta como un valor booleano? ?

Así por ejemplo:

$( document ).ready(function(){ $(''#result'').text(typeof validate()); $(''#result2'').text(typeof validate2()); }); function validate(){ status = true; status = false; return status; } function validate2(){ return true; }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <p>Hello</p> <div id="result"></div> <div id="result2"></div>



$( document ).ready(function(){ $(''#result'').text(typeof validate()); $(''#result2'').text(typeof validate2()); }); function validate(){ var status = true; status = false; return status; } function validate2(){ return true; }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <p>Hello</p> <div id="result"></div> <div id="result2"></div>

EDITAR: estaba construyendo la respuesta y algo sale mal, de todos modos, @Oriol explica bien el motivo: la variable global window.status es la que tiene el tipo de valor de cadena.