gpt4 book ai didi

javascript - 无法将函数返回的 bool 值存储在变量中

转载 作者:行者123 更新时间:2023-11-28 19:16:01 26 4
gpt4 key购买 nike

我不知道这是否是一个错误,但感觉有点奇怪。您可以使用 javascript 将函数返回的 bool 值存储在变量中吗?每当我尝试将 bool 值存储在函数返回的变量中时,它就会更改为字符串。

我有以下函数将字符串转换为 bool 值

function str2bool(strvalue){
console.log("Value is - " + strvalue);
console.log("Type is - " + typeof strvalue);
return (strvalue && typeof strvalue == 'string') ? (strvalue.toLowerCase() == 'true') : (strvalue == true);
}

I've found this function somewhere here on StackOverflow, but I do not remember it's author, so if you are reading this, sorry about me not giving proper credits:)

我还有另一行 JavaScript 代码,如下所示:

target.prop('disabled',str2bool(booleanInStringFormat));
console.log("Typeof str2bool return is - " + typeof str2bool(booleanInStringFormat));

如果我这样使用它,一切都会正常工作,str2bool 函数将以下行返回到控制台:

Value is - false
Type is - string

主函数返回后的行:

Typeof of str2bool function is - boolean

但是,如果我尝试将 str2bool 的返回值存储在变量中,然后使用它,则 prop 函数将不起作用,因为显然我用来存储 str2bool 返回值的变量变成了字符串。如果我运行此代码,我会得到以下结果:

status = str2bool(booleanInStringFormat);
console.log("Typeof status is - " + typeof status);
target.prop('disabled',status);

结果如下:

Value is - false
Type is - string
Typeof status is - string
End result is that target remains disabled

那么,为什么我存储函数返回值的变量类型又变回字符串了?

最佳答案

因为您使用了全局变量status,它似乎是全局对象window的属性,所以该属性只能是字符串

window.status

您可以更改为其他变量名称,但更好的是,避免使用全局变量。

(function(){
var status = str2bool('false');
console.log(typeof status);
}());

关于javascript - 无法将函数返回的 bool 值存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29803136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com