タグ

ブックマーク / qiita.com/alucky0707 (1)

  • なぜ絵文字を含む文字を1文字ずつに分けるのにArray.fromだけで十分なのか? - Qiita

    「Node.js で絵文字を使う時の注意点 - Qiita」にコメントしたのですが、大雑把すぎて説明になっていない気がするので、詳細に解説したいと思います。 TL;DR 絵文字のようなサロゲートペアを含む文字列をJavaScriptで扱おうとすると面倒。 ↑ s.length、s[0] とか s.split('') とかがおかしくなる。 1文字ずつに分割したいときは Array.from が使える。 なぜなら、Array.from は内部的に for of 文のようなことをしていて、文字列に対する for of はサロゲートペアを考慮するから。 問題点と解決まで 絵文字を含む文字、つまりUTF-16のサロゲートペアを含むような文字を一文字ずつに分割したい場合、JavaScriptでは問題が生じます。つまり、どういうことかというと、 const kira = 'キラッ🌠' // 見ため上は

    なぜ絵文字を含む文字を1文字ずつに分けるのにArray.fromだけで十分なのか? - Qiita
    seiunsky
    seiunsky 2018/01/18
    なるほどなー“文字列を for of に渡した場合、サロゲートペアも考慮して1文字ずつ反復していきます”
  • 1