Poi*_*nty 26
你可以这样做:
var bool = !!someString;
Run Code Online (Sandbox Code Playgroud)
如果你这样做,你会发现字符串常量"False"实际上是布尔值true.为什么?因为那些是Javascript中的规则.任何不是undefined,null空字符串("")或数字零都被考虑true.
如果你想为字符串强加你自己的规则(一个可疑的想法,但它是你的软件),你可以编写一个带有查找表的函数来返回值:
function isStringTrue(s) {
var falses = { "false": true, "False": true };
return !falses[s];
}
Run Code Online (Sandbox Code Playgroud)
也许.
编辑 - 修正错字 - 谢谢@Patrick
Jon*_*Jon 24
你可以使用这样的东西为字符串提供你自己的自定义"是真的"测试,同时保持其他类型比较不受影响的方式:
function isTrue(input) {
if (typeof input == 'string') {
return input.toLowerCase() == 'true';
}
return !!input;
}
Run Code Online (Sandbox Code Playgroud)
function castStrToBool(str){
if (str.toLowerCase()=='false'){
return false;
} else if (str.toLowerCase()=='true'){
return true;
} else {
return undefined;
}
}
Run Code Online (Sandbox Code Playgroud)
......但我认为Jon的答案更好!
| 归档时间: |
|
| 查看次数: |
19866 次 |
| 最近记录: |