我正在使用String.split
将命令行字符串解析为字符串数组。然后,结果用于使用Function.apply
API调用函数。
如果使用此功能调用apply(null, ["17"])
:
static function test(foo:int):void
{
trace(foo, typeof(foo));
}
它按预期工作(输出:17 number
)。
但是,使用此功能调用apply(null, ["false"])
或apply(null, ["0"])
:
static function test(foo:Boolean):void
{
trace(foo, typeof(foo));
}
不起作用(预期输出:false Boolean
;实际输出:true Boolean
)。
有没有办法让它将"true"
和"false"
(或其他任何东西)识别为布尔值,就像它对数字字符串一样?理想情况下,"true"
和"false"
也应保留有效的字符串值。
答案 0 :(得分:2)
不,没有内置方法可以将字符串“true”和“false”解释为布尔值。
在ActionScript和其他ECMA脚本语言中,唯一被评估为布尔值false的字符串值是空字符串“”。具有长度的任何字符串在布尔表达式中被评估为true,包括字符串“false”和“0”。
在实践中,这很少是一个大问题,因为进行字符串比较非常容易。这里有一堆建议:How can I convert a string to boolean in JavaScript?