私のJavascriptスキルは本当に初心者レベルで、
「他人が書いたJavascriptを改造する時は、それなりに思い通りに作動させる事が出来る」
でも「自分でイチから書くと、予期しない作動ばかりでどうにもならなくなる」
というパターンが非常に多いです。

本日、ようやくその答えが見えてきたのでメモ書き。

原因は「変数の巻き上げ」

知らないと怖い「変数の巻き上げ」とは?
▲私の場合、Javascriptが動かない原因は、殆どコレだ。。。

 

JavaScriptでは、関数内のどこにでもvar文を使用して変数を宣言することができます。そして、これらの変数は関数内のいかなる場所で宣言されたとしても、その関数の先頭で宣言されたのと同じように動作します。

JavaScriptでは、関数内で宣言されたローカル変数は、すべてその関 数の先頭で宣言されたものとみなされる。

このような振る舞いは「変数の巻き上げ(hoisting)」と呼ばれます。

なるほど。
今まで、return使っても変数返してくれない時があるけど、なんでやろ・・・・?
と思っていたけれど、こういう挙動があるとは。。。