質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Q&A

解決済

2回答

975閲覧

出力処理で変数の値が参照されない

ysk1118

総合スコア22

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

0グッド

0クリップ

投稿2020/10/25 13:59

編集2020/10/26 04:07

質問

node.jsの勉強を始めました。
入門書を読んでいますが、入門書のサンプルコードを実行しても
本と同じ結果になりません。
何が問題なのでしょうか?

該当のソースコード

JavaScript

1let a = "test"; 2console.log('Hello,${a}');

本の結果

Hello,test

実際の結果

Hello,${a}

補足情報(FW/ツールのバージョンなど)

Node.jsのバージョン v12.19.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

テンプレートリテラル (テンプレート文字列)ですね。

質問文のコードはシングルクォートで区切られているので、
この値を文字列に埋め込むことはできません。

バッククォートを使ってください。
日本語のJISキーボードであれば、Shift + @で入力できます。


ES2015という比較的新しいバージョンで、
JSはPHPのような変数を埋め込んだ文字列を作れるようになりました。

しかし、JSには後方互換性を重視する思想があります。
同じWebサイト、ブラウザの組み合わせで昨日まで閲覧できたサイトが、
今日のブラウザのアップデートでJSの解釈に破壊的な変更が加わり、Webサイトが閲覧できなくなった!!
これは許されないわけです。

元々JSには文字列を表現する為の記号が2つ存在しました

  • "(ダブルクォート)
  • '(シングルクォート)

これの中に${value}という文字列を勝手に置換をかけるような改善はできません。
JSフレームワークみたいなライブラリがやっている可能性があり、
勝手に仕様を変えるとバグの原因となりえます。

なのでシングルクォートやダブルクォートでテンプレート文字列を実現することはできず、
新しくバッククォートを使うよう構文を追加して対応したという経緯があります。

投稿2020/10/26 03:33

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ysk1118

2020/10/26 04:04

バッククォート…書籍をよーく見てみたら、おっしゃる通りでした。 シングルクォーテーションだと思った私の見間違いだったのですね。 経緯まで記載していただきありがとうございます。
guest

0

ベストアンサー

シングルクォートではなく、バッククォートで囲んでください。

Javascript

1let a = "test"; 2console.log(`Hello,${a}`);

参考記事です
https://qiita.com/kura07/items/c9fa858870ad56dfec12

記事の中のコードを抜粋したものが以下になります。

Javascript

1var foo = "--"; 2var a = "ジャバ" + foo + "スク" + (111+222) + "リプト"; 3var b = `ジャバ${foo}スク${111+222}リプト`; 4console.log( a === b ); // true 5console.log( b ); // ジャバ--スク333リプト

投稿2020/10/25 14:17

yuxki

総合スコア110

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ysk1118

2020/10/26 04:05

ご回答いただき、ありがとうございました。 シングルクォートとバッククォートを見間違えていたのですね。 お恥ずかしい限りです…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問