NodeJSで実行している.jsファイルがあります。これが私のファイルの内容です:
var ctry = "America";
function outer(msg) {
console.log(msg + " " + ctry) ;
var ctry = "Canada" ;
}
outer("God Bless");
このファイルを実行すると、「God Bless America」が表示されるはずですが、代わりに「GodBlessundefined」が表示されます。
内側のvarctry=行をコメントアウトすると、「God Bless America」が表示され、内側のvar ctry =行をconsole.logの上に移動すると、「GodBlessCanada」が表示されます。これらの最後の2つのケースは論理的に見えますが、console.logの後にvar ctryを定義すると、上記のコードでctryがアンダーファインに設定されるのはなぜですか?