字符串转换的更快布尔值

时间:2011-12-04 21:07:07

标签: javascript boolean

对于数字,您可以+"10"代替Number("10"),这可以更快。有没有办法从字符串中为布尔值执行此操作?。

3 个答案:

答案 0 :(得分:5)

使用正则表达式很愚蠢。如果你真的只想匹配字符串'true'而不关心区分大小写,那么只需要与该字符串进行比较:

function parseBoolean(s)
{
    return s === 'true';
}

我想如果我真的要和你一起玩“填补空白”,我会回答:

+"10" is to Number("10") as !!"true" is to Boolean("true")

因为当Boolean(x)是假值时,false仅返回x,即x ∊ {null, undefined, false, 0, ''}时。{/ p>

答案 1 :(得分:1)

如果匹配单词true的所有案例变体是必需的,我相信使用正则表达式是最快的,例如:

/^true$/i.match(input)

答案 2 :(得分:1)

一些不太好的和邪恶的解决方案:

window.toBool = {'false':false,'true':true};
toBool['false'] === false

eval('false') === false // don't ever do this!

JSON.parse('false')