布尔variables从javascript函数返回string

为什么当我返回时,我认为是一个来自javascript函数的布尔variables,它在调用函数中被检测为一个string,但是如果我返回一个布尔文本,调用函数会将其检测为一个布尔值?

所以,例如:

$( 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> 

您不需要声明status状态variables。

因此,全局( window.status )被覆盖。

但是, HTML 5规范将该属性定义为DOMString:

 interface Window : EventTarget { attribute DOMString status; }; 

因此,它有一个setter(暴露或内部)存储string化的值。

要解决这个问题,只需使用var语句声明你的局部variables即可。

 $( 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>