布尔变量从javascript函数返回为字符串

ani*_*der 2 javascript

为什么当我返回时,我认为是来自javascript函数的布尔变量,它在调用函数中被检测为字符串,但如果我返回一个布尔文字,则调用函数将其检测为布尔值?

所以,例如:

$( document ).ready(function(){
    $('#result').text(typeof validate());
    $('#result2').text(typeof validate2());
});

function validate(){
    status = true;
    status = false;
    return status;
}
    
function validate2(){
    return true;
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

Ori*_*iol 7

您没有声明status状态变量.

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

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

interface Window : EventTarget {
  attribute DOMString status;
};
Run Code Online (Sandbox Code Playgroud)

因此,它有一个存储字符串值的setter(暴露或内部).

要修复它,只需使用该var语句声明您的局部变量.