我不知道這是一個錯誤返回一個布爾值,但感覺有種異樣。你可以存儲一個函數返回的布爾值在一個變量使用JavaScript?每當我嘗試在一個函數返回的變量中存儲一個布爾值時,它就會變成字符串。不能存儲通過函數在一個變量
我有以下功能,將字符串轉換爲布爾
function str2bool(strvalue){
console.log("Value is - " + strvalue);
console.log("Type is - " + typeof strvalue);
return (strvalue && typeof strvalue == 'string') ? (strvalue.toLowerCase() == 'true') : (strvalue == true);
}
我發現這個功能在這裏StackOverflow的地方,但我不記得它的作者,所以如果你正在讀這篇文章,約我遺憾沒有給予適當學分:)
我有另一個JavaScript線,如下所示:
target.prop('disabled',str2bool(booleanInStringFormat));
console.log("Typeof str2bool return is - " + typeof str2bool(booleanInStringFormat));
如果我使用這種方式,everyting工作正常,則str2bool函數返回下列行控制檯:
值是 - 假
類型是 - 字符串
而行主函數返回後:
TYPEOF str2bool的功能是 - 布爾
但是,如果我嘗試str2bool的返回值存儲在一個變量,事後用它,道具功能將無法正常工作,因爲很明顯,我用它來存儲str2bool的返回值的變量就成了一個字符串。如果我運行此代碼,我得到如下結果:
status = str2bool(booleanInStringFormat);
console.log("Typeof status is - " + typeof status);
target.prop('disabled',status);
結果如下:
值是 - 假
類型是 - 字符串
TYPEOF狀態 - 字符串
末結果是該目標仍然被禁用
那麼,爲什麼是我存儲返回的變量的類型的功能是否改回字符串?
是的,這是隱式字符串轉換。 _Something_''''_String_'=='_String_。總是(大部分時間)。 – Xufox
但是沒有任何內容被添加到最終結果中... –
好吧,也許我誤解了它......無論如何。 – Xufox