String.charAt() 在给定一个无法解析为 int 的字符串的情况下返回什么

What does String.charAt() return given a string that cannot be parsed into int?

本文关键字:int 情况下 什么 返回 字符串 charAt String 一个      更新时间:2023-09-26
'test'.charAt('not an integer');

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

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

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

设位置为 ToInteger(pos(。

在 ToInteger 的规范中:

让 number 是在输入参数上调用 ToNumber 的结果。

在 ToNumber 的规范中:

如果语法无法将字符串解释为 StringNumericLiteral 的扩展,则 ToNumber 的结果为 NaN。

并返回 ToInteger:

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