我喜欢函数String.prototype.charCodeAt
,但它要求你考虑一个String情况并提供一个索引参数。我知道Ecmascript不处理单个字符,但是有任何 native 方法可以直接从一个字符获取charCode吗?像str[0].charCode()
或任何考虑1长度字符串的东西?
答案 0 :(得分:1)
是否有任何本地方法直接从一个角色获取charCode? p>
没有。正如你所说,EcmaScript并没有专门处理“一个字符”的事情。
如果你需要处理单个字符,你可以直接将它们存储为数值,只有当它们有序列时才将它们转换为字符串。
像
这样的东西str[0].charCode()
嗯,看起来你真的想在这里使用str.charCodeAt(0)
。
答案 1 :(得分:1)
您应首先定义您的案例中charCode的含义。
JS使用UTF-16编码的字符串,因此charCodeAt
是该位置的UTF-16代码单元的值。最初,JS使用了charCodeAt()
具有完美意义的UCS2子集。完全不支持编码为UTF-16的完整UCS4支持。
从字符串获取真正的UNICODE代码点(是你的charCode吗?)的唯一方法是使用ES6及其字符串枚举功能:
for (let ch of str) { ch here is real UNICODE code point }
注意,上面的迭代次数可能比str.length少。
答案 2 :(得分:0)
String.prototype.charCode = function(){
return this.charCodeAt(0).toString(16);
}
那么你可以做到
str[0].charCode();