解析字符串中的布尔值以与Function.apply一起使用

时间:2010-03-13 09:50:16

标签: flex flash actionscript-3

我正在使用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"也应保留有效的字符串值。

1 个答案:

答案 0 :(得分:2)

不,没有内置方法可以将字符串“true”和“false”解释为布尔值。

在ActionScript和其他ECMA脚本语言中,唯一被评估为布尔值false的字符串值是空字符串“”。具有长度的任何字符串在布尔表达式中被评估为true,包括字符串“false”和“0”。

在实践中,这很少是一个大问题,因为进行字符串比较非常容易。这里有一堆建议:How can I convert a string to boolean in JavaScript?