JavaScript的charCodeAt()
方法为字符提供ASCII等效值(例如,“ A”至“ Z”的字符为65至90)。是否有与Java的Character.getNumericValue()
方法等效的Javascript方法,该方法返回指定的Unicode字符表示的int
值? (例如,对于“ A”到“ Z”,它将返回10到35)
答案 0 :(得分:2)
parseInt
使用基数36:
console.log(parseInt("A", 36)); // 10
console.log(parseInt("Z", 36)); // 35
如果您愿意(并且您没有编写其他人会混入他们的代码的库或模块),甚至可以将getNumericValue
添加到String.prototype
:
Object.defineProperty(String.prototype, "getNumericValue", {
value() {
return parseInt(this, 36);
},
writable: true,
configurable: true
});
console.log("A".getNumericValue()); // 10
在编写将混入您不直接控制的代码的库或模块时,最好不要扩展内置原型,因为如果每个人都这样做,则可能会发生冲突。而且,如果要扩展内置原型,则使用Object.defineProperty
很重要,因此该属性不可枚举(enumerable
的默认值为false
)。即使在您自己的代码库中,通常也最好根本不扩展Object.prototype
(即使具有不可枚举的属性也不要)。