JavaScriptでBase64

ブラウザのJavaScriptで文字列をBase64エンコード、デコードする方法

btoa(String.fromCharCode.apply(null, new TextEncoder().encode("猫🐈")));
"54yr8J+QiA==" 
new TextDecoder().decode(new Uint8Array(Array.from(atob("54yr8J+QiA==")).map(s=>s.charCodeAt())))
"猫🐈" 

文字列はUTF-8エンコードされたバイト列として処理される