'test'.charAt('not an integer');
这段代码总是返回't'
,我猜当 的参数charAt()
不能转换为整数时,它只返回第一个字符。
但我似乎找不到这种行为的记录。我的假设是否正确,您能否指出记录此行为的资源?
'test'.charAt('not an integer');
这段代码总是返回't'
,我猜当 的参数charAt()
不能转换为整数时,它只返回第一个字符。
但我似乎找不到这种行为的记录。我的假设是否正确,您能否指出记录此行为的资源?
是的,它将返回第一个位置的字符。来自ECMAScript 5 规范
设位置为 ToInteger(pos)。
在 ToInteger 的规范中:
令 number 为对输入参数调用 ToNumber 的结果。
在 ToNumber 的规范中:
如果语法不能将 String 解释为 StringNumericLiteral 的扩展,则 ToNumber 的结果为 NaN。
并返回 ToInteger:
如果数字为 NaN,则返回 +0。