为什么当我回来时,我认为是来自javascript函数的布尔变量,它在调用函数中被检测为字符串,但是如果我返回一个布尔文字,则调用函数将其检测为布尔值?
所以,例如:
$( 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>
&#13;
答案 0 :(得分:7)
您没有声明status
状态变量。
因此,全局的(window.status
)会被覆盖。
但是,HTML 5 spec将该属性定义为DOMString:
interface Window : EventTarget {
attribute DOMString status;
};
因此,它有一个存储字符串值的setter(公开或内部)。
要解决此问题,只需使用var
statement声明您的本地变量。
答案 1 :(得分:1)
$( 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>
编辑:我正在构建答案并出现问题,无论如何,@ Oriol解释了原因:全局window.status变量是具有字符串值类型的变量。< / p>