JavaScript codePointAt-metoden har mer eller mindre samma funktion som charCodeAt-metoden, som används för att få 16-bitars Unicode-representation av tecknet på en viss position i en sträng.
Vissa tecken utgör dock ett litet problem, eftersom de använder två 16-bitars enheter, så charCodeAt-metoden kommer bara att returnera hälften av representationen av dessa specialtecken.
CodePointAt-metoden introducerades i JavaScript i sin ES2015 version för att få Unicode-representationer av tecken som använder två 16-bitarsenheter istället för bara en. I allmänhet kan du få alla latinska eller saxiska tecken med charCodeAt-metoden, men inte kinesiska eller japanska tecken. CodePointAt-metoden accepterar som en parameter indexet för den sträng som metoden tillämpas på, vilket kan vara en standardsträng som deklareras med enkla eller dubbla citattecken, ett String-objekt eller en mall-literal
Värdet som returneras av codePointAt-metoden kommer att vara odefinierat när indexet vi skickar till metoden inte har någon representation.
Till exempel för att få Unicode-representationen i decimal eller hexadecimal formad av två Unicode UTF-16 karaktärens enheter vi skulle behöva använda charCodeAt-metoden två gånger:
// Decimalrepresentation const firstPart = ‘‘.charCodeAt(0); // 55362 const secondPart= ‘‘.charCodeAt(1); // 57271 // Hexadecimal representation const firstPart = ‘‘.charCodeAt(0).toString(16); // d842 const secondPart = ‘‘.charCodeAt(1).toString(16); // dfb7
Du kan se att om du sätter ihop båda delarna och visar dem genom konsolen får du karaktären :
console.log(‘ud842udfb7’); //
Det är dock möjligt att få teckenrepresentationen med hjälp av codePointAt-metoden endast en gång:
// Decimal representation const decimal = ‘‘.codePointAt>(0); // 134071 // Hexadecimal representation const hexadecimal = ‘‘.codePointAt(0).toString(16); // 20bb7
För att kontrollera att resultatet är korrekt, visa bara resultatet via konsolen:
console.log(‘u{20bb7}’);
Om du använder ett String-objekt är processen exakt densamma:
const mychain = new String(‘‘); // Decimal representation const decimal = mychain.codePointAt(0); // 134071 // Hexadecimal representation const hexadecimal = mychain.codePointAt(0).toString(16); // 20bb7
relaterade inlägg
Vad är en JWT-token och hur fungerar den?
JWT-tokens är en standard som används för att skapa programåtkomsttokens, vilket möjliggör användarautentisering i webbapplikationer. Specifikt följer den RFC 7519-standarden. Vad är en JWT-token En JWT-token…
Mallbokstavar i JavaScript
Mall-literals, även känd som mall-literals, dök upp i JavaScript i dess ES6-version, vilket ger en ny metod för att deklarera strängar med inverterade citattecken, vilket erbjuder flera nya och förbättrade möjligheter. Handla om…
Hur man använder endsWith-metoden i JavaScript
I den här korta handledningen ska vi se vad endsWith-metoden, introducerad i JavaScript ES6, är och hur den används med strängar i JavaScript. EndsWith-metoden är…
Återuppringningar i JavaScript
Callback-funktioner är samma gamla JavaScript-funktioner. De har ingen speciell syntax, eftersom de helt enkelt är funktioner som skickas som ett argument till en annan funktion. Funktionen som tar emot…
Hur man skapar PDF med JavaScript och jsPDF
Att skapa dynamiska PDF-filer direkt i webbläsaren är möjligt tack vare jsPDF JavaScript-biblioteket. I den sista delen av denna artikel har vi förberett en praktisk handledning där jag…
Node.js och npm: introduktionshandledning
I den här handledningen kommer vi att se hur du installerar och använder både Node.js och npm-pakethanteraren. Dessutom kommer vi också att skapa en liten exempelapplikation. Om du…
Hur man ansluter till MySQL med Node.js
Låt oss se hur du kan ansluta till en MySQL-databas med Node.js, den populära JavaScript-runtime-miljön. Innan vi börjar är det viktigt att notera att du måste ha Node.js installerat…
JavaScript-programmeringsstilar: bästa praxis
När du programmerar med JavaScript finns det vissa konventioner som du bör tillämpa, speciellt när du arbetar i en teammiljö. Faktum är att det är vanligt att ha möten för att diskutera standarder…
projekt