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

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

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

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

Q&A

解決済

1回答

280閲覧

JavaScriptでストップウォッチを作る過程で疑問が生まれました。

FreddyMarcury

総合スコア4

JavaScript

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

0グッド

0クリップ

投稿2020/06/10 08:08

画像のようなストップウォッチをJavaScriptで動かそうと思っていて、現在STARTを押したら時間が動くようにしようとしているところです。
そこでJavaScriptの4行目のlet startTime;の部分でわからないことがあります。この部分のletは何故constではだめなのですか?constにすると、「Uncaught SyntaxError: Missing initializer in const declaration」というエラーが出てしまいます。自分としては、startTimeというのはclickした瞬時の時間であるので定数として扱ってよいと考え、constでよいのではと思ってこのような疑問が生まれました。質問に不慣れなので至らぬ点あればぜひご指摘いただければ幸いです。アドバイスよろしこお願いします。

HTML

1<!DOCTYPE html> 2<html lang="en"> 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</head> 9<body> 10 <div id="stopwhatch"> 11 <div id="timer">00:00.000</div> 12 <div id="btn"> 13 <div id="start">START</div> 14 <div id="stop">STOP</div> 15 <div id="reset">RESET</div> 16 </div> 17 </div> 18 <script src="js/main.js"></script> 19</body> 20</html>

JavaScript

1const start = document.getElementById('start'); 2 const stop = document.getElementById('stop'); 3 const reset = document.getElementById('reset'); 4 let startTime; 5 start.addEventListener('click',() => { 6 startTime = Date.now(); 7 countUp(); 8 }); 9 function countUp () { 10 console.log(Date.now() - startTime); 11 setTimeout(countUp,10); 12 } 13```![イメージ説明](3e65f7143430c58a79cb6d15165b199b.png)

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

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

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

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

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

guest

回答1

0

ベストアンサー

MDNを見るといいですよ。または「const javascript」でググるとか。

定数には初期化子が必要です。宣言された同じ文の中で値を指定しなくてはいけません (つまり、あとで変更することができません)。

const - JavaScript | MDN

投稿2020/06/10 08:13

Lhankor_Mhy

総合スコア36138

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

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

FreddyMarcury

2020/06/10 08:22

回答ありがとうございます。MDNを拝見させていただきました。 const startTime; startTime = Date.now(); ←ここで再宣言してしまってる こういう感じの解釈であっていますでしょうか?うまく言い表せずすみません。
Lhankor_Mhy

2020/06/10 08:29

違います。 注目するところは「宣言された同じ文の中で値を指定しなくてはいけません」です。値を指定していないから文法エラーになっています。再代入の実行までたどり着いていないはずですが、違いますか? 「Missing initializer in const declaration」は、雑に訳すと「定数宣言に初期化子がない」です。 再代入うんぬん以前の問題で、文法が間違っている、と純粋に理解した方がいいかと思います。
FreddyMarcury

2020/06/10 09:22

完全に理解できました。自分のコードだと同じ文で代入していないからそもそも代入自体できていなかったのですね。ご丁寧に回答していただけて助かりました。今後はやみくもに調べるのではなく、エラーを訳して調べるといった工夫をしてみることにします。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問