[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt [Back]  [Original]

String.prototype.charCodeAt() - JavaScript | MDN

MDN Web Docs

View in English Always switch to English

String.prototype.charCodeAt()

20157

String charCodeAt() UTF-16 0 65535

charCodeAt() UTF-16 lone surrogate Unicode String.prototype.codePointAt()

const sentence = "The quick brown fox jumps over the lazy dog.";

const index = 4;

console.log(
  `Character code ${sentence.charCodeAt(index)} is equal to ${sentence.charAt(
    index,
  )}`,
);
// Expected output: "Character code 113 is equal to q"

js
charCodeAt(index)

index

undefined 0

0 65535 index UTF-16 index 0 str.length - 1 charCodeAt() NaN

0 str str.length - 1

Unicode 0 11141110x10FFFFcharCodeAt() 65536 16 surrogate pseudo-character 65535 charCodeAt(i) charCodeAt(i + 1) codePointAt(i) Unicode UTF-16 Unicode

charCodeAt()

65 A Unicode

js
"ABC".charCodeAt(0); //  65

charCodeAt() Unicode

js
const str = "";
console.log(str.charCodeAt(0)); // 55362  d842 Unicode 
console.log(str.charCodeAt(1)); // 57271  dfb7 Unicode 

Unicode String.prototype.codePointAt()

js
const str = "";
console.log(str.codePointAt(0)); // 134071

charCodeAt() codePointAt() UTF-16 Unicode codePointAt() codePointAt() polyfill

UTF-16 Unicode Unicode

js
// 
const LEAD_OFFSET = 0xd800 - (0x10000 >> 10);
const SURROGATE_OFFSET = 0x10000 - (0xd800 << 10) - 0xdc00;

function utf16ToUnicode(lead, trail) {
  return (lead << 10) + trail + SURROGATE_OFFSET;
}
function unicodeToUTF16(codePoint) {
  const lead = LEAD_OFFSET + (codePoint >> 10);
  const trail = 0xdc00 + (codePoint & 0x3ff);
  return [lead, trail];
}

const str = "";
console.log(utf16ToUnicode(str.charCodeAt(0), str.charCodeAt(1))); // 134071
console.log(str.codePointAt(0)); // 134071

ECMAScript 2027 LanguageSpecification
# sec-string.prototype.charcodeat


Web Proxy Viewer  |  New URL  |  Original Page