【変数宣言について補足】 変数とは、一時的に値を格納する用の入れ物のことになります。 動画内では、"var"で定義していますが、似ている定義に"let"があります。 "var"は関数(function)内に同じ名前の変数を複数定義できますが、"let"は定義できません。 同じ名前の変数が複数存在する場合は、実行中の最後に定義された変数が指定されます。 それ以外にも、"var"は関数(function)内で定義すれば、関数(function)内で自由に呼び出すことができますが、"let"はブロック単位になります。 例えば、以下のような書き方の場合、"let"ではエラーになります。 function test(){ let ans; if(true){ var i = 1; let j = 1; } ans = i; ans = j; // 未定義エラーになる } エラーの理由は、変数jはifのブロック内で定義されているため、ifのブロック内でしか使用できないにもかかわらず、その変数jをブロック外で呼び出そうとしたためです。 それに対し、変数iは、ifのブロック外であっても、関数(function)内の定義であれば呼び出すことができます。 "var"と"let"の使い分けは目的によりますが、意図的ではなく、誤って同じ名前の変数を定義してしまうことを防ぐ場合は、"let"を活用することをお勧めします。
【変数宣言について補足】
変数とは、一時的に値を格納する用の入れ物のことになります。
動画内では、"var"で定義していますが、似ている定義に"let"があります。
"var"は関数(function)内に同じ名前の変数を複数定義できますが、"let"は定義できません。
同じ名前の変数が複数存在する場合は、実行中の最後に定義された変数が指定されます。
それ以外にも、"var"は関数(function)内で定義すれば、関数(function)内で自由に呼び出すことができますが、"let"はブロック単位になります。
例えば、以下のような書き方の場合、"let"ではエラーになります。
function test(){
let ans;
if(true){
var i = 1;
let j = 1;
}
ans = i;
ans = j; // 未定義エラーになる
}
エラーの理由は、変数jはifのブロック内で定義されているため、ifのブロック内でしか使用できないにもかかわらず、その変数jをブロック外で呼び出そうとしたためです。
それに対し、変数iは、ifのブロック外であっても、関数(function)内の定義であれば呼び出すことができます。
"var"と"let"の使い分けは目的によりますが、意図的ではなく、誤って同じ名前の変数を定義してしまうことを防ぐ場合は、"let"を活用することをお勧めします。