2
'test'.charAt('not an integer');

这段代码总是返回't',我猜当 的参数charAt()不能转换为整数时,它只返回第一个字符。

但我似乎找不到这种行为的记录。我的假设是否正确,您能否指出记录此行为的资源?

4

1 回答 1

2

是的,它将返回第一个位置的字符。来自ECMAScript 5 规范

设位置为 ToInteger(pos)。

在 ToInteger 的规范中:

令 number 为对输入参数调用 ToNumber 的结果。

在 ToNumber 的规范中:

如果语法不能将 String 解释为 StringNumericLiteral 的扩展,则 ToNumber 的结果为 NaN。

并返回 ToInteger:

如果数字为 NaN,则返回 +0。

于 2013-07-02T15:35:56.680 回答