等效于java.lang.Character.getNumericValue(char ch)方法的JavaScript

时间:2018-12-31 10:58:53

标签: javascript java

JavaScript的charCodeAt()方法为字符提供ASCII等效值(例如,“ A”至“ Z”的字符为65至90)。是否有与Java的Character.getNumericValue()方法等效的Javascript方法,该方法返回指定的Unicode字符表示的int值? (例如,对于“ A”到“ Z”,它将返回10到35)

1 个答案:

答案 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(即使具有不可枚举的属性也不要)。