布尔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>