This question already has answers here:
Can't populate array called `status`

(3个答案)


7个月前关闭。




为什么我返回的是JavaScript函数中的 bool(boolean) 变量,为什么在调用函数中将其检测为字符串,但是如果我返回 bool(boolean) 文字,则调用函数会将其检测为 bool(boolean) 值?

因此,例如:

$( 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状态变量。

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

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

interface Window : EventTarget {
  attribute DOMString status;
};

因此,它有一个 setter (公开或内部),用于存储字符串化值。

要修复它,只需使用 var statement声明局部变量。

关于javascript - bool 变量从javascript函数返回为字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29685364/

10-11 14:14
查看更多