文字列リテラル(クォートとエスケープ)

構文の説明

//囲んでいるクォートと同じクォートを文字列の中で使うとSyntaxError(構文エラー)になります。
//エラーになる例
console.log('I'm fine.');
console.log("input type="text"");
console.log(``const` は定数`);

//文字列の中で使うクォートと異なるクォートで囲むと、正しく表示されます。
//正しく出力される例
console.log("I'm fine.");
console.log(`input type="text"`);
console.log('`const` は定数');

例題

次のコードはエラーになります。エラーにならないように修正してください。

console.log('I'm hungry.');

console.log("I'm hungry.");
または
console.log(`I'm hungry.`);

問題

次のコードはエラーになります。エラーにならないように修正してください。

console.log("She said "Hello!"");

console.log('She said "Hello!"');
または
console.log(`She said "Hello!"`);

console.log("I like "pizza" and "sushi".");

console.log('I like "pizza" and "sushi".');
または
console.log(`I like "pizza" and "sushi".`);

console.log('That's great');

console.log("That's great");
または
console.log(`That's great`);

console.log(`This is a `template` literal example.`);

console.log("This is a `template` literal example.");
または
console.log('This is a `template` literal example.');

console.log('She said "I'm OK"');

console.log(`She said "I'm OK"`);

次のコードはエラーになります。どのように修正したら良いか確認しましょう。

console.log("She said `I'm "OK"`");

console.log("She said `I'm \"OK\"`");

\ (バックスラッシュ)を付けてエスケープ処理をすると、文字列中で囲んでいるクォートと同じ記号もそのまま使用できます。
この問題のように、文字列の中で ' " ` をすべて使用したい場合など、囲んでいるクォートと同じ記号の前に \を付けてエスケープ処理ができます。

次のコードはエラーになります。エラーにならないようにエスケープを使って修正してください。

console.log('It's Good.')

console.log('It\'s Good.')

console.log("He said "Thanks" to me.");

console.log("He said \"Thanks\" to me.");

console.log(`Use the `const` keyword.`);

console.log(`Use the \`const\` keyword.`);

console.log("He said `I'm "happy"`");

console.log("He said `I'm \"happy\"`");