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

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

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

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

5562閲覧

javascriptのモジュールをimportしたいのだが、関数が定義出来ない(読み取られない)

kkk1997

総合スコア1

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2022/05/18 14:08

編集2022/05/18 14:44

前提・実現したいこと

[前提]javascriptでモジュールを使い、import/exportを試みましたが関数が定義されません。

[実現したいこと]
HTML・CSS・javascriptを用いて簡単なクイズアプリを作成中です。
まず初めにjavascriptから新たに2つファイルを作成しました。
その内のquiz_data_jp.jsファイルで書いたクイズ問題を
もう一方のscript.jsファイルにexportさせ、クイズ問題を反映させたいと考えております。

起きている問題・エラーメッセージについて

quiz_data_jp.jsファイル⇨script.jsファイルにexportを試みましたが、
関数quizDataJpが定義されません。

[エラーメッセージについて]

vscode上で、関数名quizDataJpにカーソルを合わせると
『'quizDataJp' が宣言されていますが、その値が読み取られることはありません。ts(6133)』
と、上記のように表示されます。
素人ながら必死に解決を目指し、模索いたしましたが力及ばず此方のサイトにて質問をいたしました。

お教えいただきたいことについて

・import先で関数(変数)が定義出来ない原因
・その解決策

貴重なお時間の中、大変恐れ入りますが
お教えいただけますとありがたく存じます。
拙い文章でお読みづらく恐縮ですが何卒よろしくお願いいたします。

該当のソースコードについて

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width,initial-scale=1.0"> 6 <title>薄毛対策クイズ</title> 7 <link rel="stylesheet" href="style.css"> 8 <script type="module" src="./script.js" defer></script> 9 <script type="module" src="./quiz_data_jp.js" defer></script> 10</head> 11<body> 12 <div id="quiz-container"> 13 <div id="quiz-header"> 14 <h2 id="question">Question text</h2> 15 16 <form id="quiz-form" name="quizForm"> 17 <ul> 18 <li> 19 <input type="radio" id="a" name="answer" value="a" /> 20 <label id="a-text" for="a">Quesition</label> 21 </li> 22 <li> 23 <input type="radio" id="b" name="answer" value="b" /> 24 <label id="b-text" for="b">Question</label> 25 </li> 26 <li> 27 <input type="radio" id="c" name="answer" value="c" /> 28 <label id="c-text" for="c">Question</label> 29 </li> 30 <li> 31 <input type="radio" id="d" name="answer" value="d" /> 32 <label id="d-text" for="d">Question</label> 33 </li> 34 </ul> 35 </form> 36 </div> 37 38 <button id="submit">回答する</button> 39 <button id="submit">ヒント</button> 40 41 <div id="results-container"> 42 <div id="results-header"> 43 <h2 id="results"></h2> 44 <button id="next-quiz">次の問題へ進む</button> 45 </div> 46 </div> 47 </div> 48</body> 49</html>

javascript

1//こちらのコードがquiz_data_jp.jsです。 2const quizDataJp = [ 3 { 4 question: '頭皮改善を行なう上で効果的ではに習慣は次の内どれ?', 5 a: '毎日湯舟に浸かる', 6 b: 'ふくらはぎのマッサージ', 7 c: '就寝時は頭から携帯を離す', 8 d: '短時間睡眠', 9 correct: 'd' 10 }, 11 { 12 question: '自毛植毛を行う上でデメリットは複数あるが、次の内デメリットとして当てはまらないものはどれ?', 13 a: '手術後に生え揃うまで早くて一年は掛かる', 14 b: '植毛によって生えてきた髪の毛にはカラーが出来ない', 15 c: '密度を濃くしすぎてしまうと生着率が下がる恐れがある', 16 d: '10%の確率で生着しない失敗リスクがある', 17 correct: 'b' 18 }, 19 20 21]; 22 23export const question = quiz_data_jp.js;

javascript

1//こちらのコードがscript.jsです。 2 3import { quizDataJp } from "./quiz_data_jp.js"; 4 5// 質問 6 7const questionElm = document.getElementById('question'); 8 9// 質問文 10const a_text = document.getElementById('a-text'); 11const b_text = document.getElementById('b-text'); 12const c_text = document.getElementById('c-text'); 13const d_text = document.getElementById('d-text'); 14 15// 送信ボタン 16const submitBtn = document.getElementById('submit');

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

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

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

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

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

k.a_teratail

2022/05/18 14:19

作成中のコードなどはないのでしょうか? これだけでは、回答が非常に難しいです。
kkk1997

2022/05/18 14:46

k.a_teratail様 コメントありがとうございます。 コードが記載出来ておらず大変失礼いたしました。 お忙しい中、恐れ入りますが ご確認いただけますと幸いです。 よろしくお願いします。
int32_t

2022/05/18 15:14

> 『'quizDataJp' が宣言されていますが、その値が読み取られることはありません。ts(6133)』 quizDataJp を script.js 内で使ってないのでしょう。この import を削除すればいいです。
kkk1997

2022/05/20 06:36

int32_t様 コメントありがとうございます。 ご返信が遅くなり失礼いたしました。 おかげさまで理解いたしました。 大変ありがとうございました。
guest

回答1

0

ベストアンサー

quiz_data_jp.jsを下記のようにしてみたらどうでしょう。

quiz_data_jp.js

1//こちらのコードがquiz_data_jp.jsです。 2export const quizDataJp = [ // exportを付与 3 { 4 question: '頭皮改善を行なう上で効果的ではに習慣は次の内どれ?', 5 a: '毎日湯舟に浸かる', 6 b: 'ふくらはぎのマッサージ', 7 c: '就寝時は頭から携帯を離す', 8 d: '短時間睡眠', 9 correct: 'd' 10 }, 11 { 12 question: '自毛植毛を行う上でデメリットは複数あるが、次の内デメリットとして当てはまらないものはどれ?', 13 a: '手術後に生え揃うまで早くて一年は掛かる', 14 b: '植毛によって生えてきた髪の毛にはカラーが出来ない', 15 c: '密度を濃くしすぎてしまうと生着率が下がる恐れがある', 16 d: '10%の確率で生着しない失敗リスクがある', 17 correct: 'b' 18 }, 19 20 21]; 22 23// export const question = quiz_data_jp.js; 削除

投稿2022/05/18 14:58

QST_TFS

総合スコア15

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

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

kkk1997

2022/05/18 15:06

QST_TFS様 お忙しい中、コメントありがとうございます。 早速アドバイス通りにquiz_data_jp,jsを修正いたしましたが、 script.jsファイルのimportは先ほどと変わらず、 『'quizDataJp' が宣言されていますが、その値が読み取られることはありません。ts(6133)』 と、こちらのエラーメッセージが表示されておりました。
QST_TFS

2022/05/18 22:11

あ、すみません。エラーメッセージ読み違えてました。 quizDataJpを読み込んだ先のファイルで利用しなければ、そのエラーが出ます。 script.jsにconsole.log(quizDataJp)の一文を追加すれば、一旦は解決するかと思います。
kkk1997

2022/05/20 06:38

QST_TFS様 コメントありがとうございます。 ご丁寧に感謝いたします。 知識を深めて完全に理解ができるよう努めてまいります。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問