😊
エスケープ文字について
エスケープ文字とは
特別な文字の前に置くと無効にしてくれる文字
例えば、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