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

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

新規登録して質問してみよう
ただいま回答率
85.35%
変数

変数は、プログラミングにおいて値や文字列などのデータを保持できる仕組みを指します。自由に名前を付けることができるため、管理しやすくなるのが特徴です。プログラムで変数の宣言を行い、値を代入して利用。保持したデータが通用する範囲でローカル変数とグローバル変数に分けられます。

JavaScript

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

Q&A

解決済

2回答

808閲覧

JavaScriptのvarとletの違いについて教えてください

south123

総合スコア2

変数

変数は、プログラミングにおいて値や文字列などのデータを保持できる仕組みを指します。自由に名前を付けることができるため、管理しやすくなるのが特徴です。プログラムで変数の宣言を行い、値を代入して利用。保持したデータが通用する範囲でローカル変数とグローバル変数に分けられます。

JavaScript

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

0グッド

0クリップ

投稿2021/09/17 22:31

編集2021/09/18 06:05

練習で書いた下記コードは、おはよう、こんにちは、こんばんはは表示され、おやすみなさいは表示されません。おはようとこんばんはが表示されるのはわかるのですが、おやすみなさいが表示されず、こんにちはが表示される理由を教えてください。

JavaScript

<!doctype html> <html> <head> <title>JabaScript演習</title> </head> <body> <script> function aa(){ var bb ="おはよう"; prompt(bb); } aa(); function cc(){ let dd ="こんにちは"; prompt(dd); } cc(); if (true) { var ee = "こんばんは"; } prompt(ee); if (true) { let ff = "おやすみなさい"; } prompt(ff); </script> </body> </html>

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/09/17 22:48 編集

表題に書き間違いがあります。直してください。 コードは ``` と ``` で囲ってください (``` はバッククオート 3 つ)。インデントされて見易くなるので。
m.ts10806

2021/09/17 23:24 編集

タイトルがおかしいです。 >Vaとrlet >JabaScript
Lhankor_Mhy

2021/09/18 01:32

「Vaとrlet」ってなんだろう、と3分ぐらい悩みました。
otn

2021/09/18 01:57

「var let 違い」などで検索して出てきた説明を読んでも分からないのか、調べてないのか、どちらでしょうか?
south123

2021/09/18 06:27

→上記3名の方 失礼しました。修正しました。 →otnさん どちらでもありません。
BluOxy

2021/09/18 07:31

どちらでもないとは、どういうことでしょうか。 調べていないわけでもなく、説明を読んでも分からないわけでもないということは、説明を読んで両者の違いが分かったということでしょうか。
south123

2021/09/18 08:57

前半は当てはまりますが後半は当てはまらないです。調べてないわけでもなく、説明を読んで分かったのか分かっていないのか、この質問で確認しているところです。
m.ts10806

2021/09/18 08:59

でしたら、何を見たか提示された方が良いです。 ネットの情報は嘘、もしくは古い内容もあります。 古いならともかく(明示されていれば)、嘘なら筆者にしてきしなければなりません。 「読んで理解できる内容になっているかどうか」も争点です。
BluOxy

2021/09/18 09:10

説明を読んで分かったのか分かっていないのか分からないことは、分かっていないに含まれる気がしますが、とりあえず納得しました。
guest

回答2

0

ベストアンサー

"こんにちは" と表示されるのは下記2つが順番に同じスコープ function cc(){} で実行されているためです。
0. dd を let で宣言
0. prompt(dd) の呼び出し

"おやすみなさい" が表示されないのは下記2つの内、後者が前者のスコープ if (true) {} の外で実行されているためです。
0. ff を let で宣言
0. prompt(ff) の呼び出し

let

let を使用することで、それが使用されたブロック、文または式にスコープを限定した変数を宣言することができます。

ブロックの中で使えば、let の変数のスコープはそのブロックの中に制限されます。スコープが自身の宣言された関数全体になる var との違いに注意してください。

投稿2021/09/18 09:27

BluOxy

総合スコア2663

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

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

south123

2021/09/18 10:55

回答ありがとうございます。よく理解できました。
guest

0

おやすみなさいが表示されず、こんにちはが表示される理由を教えてください。

varで定義された変数eeは巻き上げられてグローバルスコープの変数になりますが、letで定義された変数ffはifブロック内をスコープとするからです。
var - JavaScript | MDN

投稿2021/09/18 02:00

ku__ra__ge

総合スコア4524

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

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

south123

2021/09/18 06:39

回答ありがとうございます。 eeとffについては理解しました。 同じくletで定義されたddがスコープせずに表示される理由があれば教えてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問