😊

エスケープ文字について

2023/10/08に公開

エスケープ文字とは

特別な文字の前に置くと無効にしてくれる文字

例えば、Typescriptで変数に文字列型としてJSONを代入したい場合

let json = `{"name": "john"}`

とします。ここでjohnという値を変数で指定するようにすると

let json = `{"name": "${name}"}`

これで、nameという変数で指定できるようになりました。

しかし、ここで問題が発生します。

let name = `"john"`
let json = `{"name": "${name}"}`
// json > {"name": ""john""}

このようにダブルクォーテーション(特別な文字)がそのまま代入されているとjson形式が崩れてしまいます。この問題を解決してくれるのがエスケープ文字です。

let name = `\"john\"`
let json = `{"name": "${name}"}`
// json > {"name": "\"john\""}

このようにバックスラッシュ(\)をダブルクォーテーションの前に置いてやればダブルクォーテーションを特別な文字としてではなくそのままの文字として解釈してくれて、正しいjson形式が保たれていることがわかります。

なぜ勉強する気になったか

例として、Typescriptを挙げましたが普段NodejsやReactjsを使っている分にはあまりエスケープ文字を触れる機会はなかったのですが、FaaS(AWS Lambdaなど)のようなサッと書くスクリプトによく採用されているJavascriptで私は仕事中にこの問題が発生してしまいました。
幸いすぐに気づいたので良かったのですが、これを機に一度調べておこうと思い執筆しました。

Discussion