Reg*_*ser -6 javascript boolean
我有一个函数返回一个值,如果满足条件可以为true,否则返回false,但函数也可以在出错时返回一个字符串消息.
我需要在正常条件下区分true/false布尔值,而不会误解任何一个的字符串值.我的策略是使用一个parseBoolean()函数,它在传递布尔输入时返回一个真正的布尔类型的true/false值,但是false当传递一个字符串时,它是一个不是布尔类型的"falsy"值.
function validate(kkk)
{
//... some check that validates
return true;
//... some check that doesn't validate
return false;
//... failure - return explanation
return 'Error Message jjjjjjjj';
}
function usingit(data)
{
if(parseBoolean(validate(data)) != false)
{
/// the value is Boolean true
}
else
{
if(parseBoolean(validate(data)) === false)
{
/// the value is Boolean false
}
else
{
/// the value is false but not of a Boolean type
/// so we will display it as the error message text.
}
}
}
Run Code Online (Sandbox Code Playgroud)
...但我还没弄明白如何创建一个parseBoolean()行为方式的函数.有任何想法吗?
根据这个:
@Esailija为什么没有意义?如果是true则返回true,如果是false则返回false,如果是'somestring'也返回false.得到它? - 注册用户31秒前
你要
function parseBoolean(value) {
return typeof value == "boolean" ? value : false;
}
Run Code Online (Sandbox Code Playgroud)
但这显然不会通过厄运的考验.
function parseBoolean(bool) {
return typeof bool == "boolean" ? bool : 0;
}
if( parseBoolean('anystring') == false ) {
alert("");
}
if( parseBoolean('anystring') !== false ) {
alert("");
}
if( parseBoolean(true) ) {
alert('');
}
if( !parseBoolean(false) ) {
alert('');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
984 次 |
| 最近记录: |