私はJavascriptが初めてで、次のコードは私を混乱させています。私の理解では、変数の前に var をドロップすることでグローバル変数に値を割り当てることができ、最初にグローバルを宣言するときに初期値を定義する必要はありません。しかし、次のコードが機能しないのはなぜですか? (機能しないということは、main() 内の document.write の呼び出しが「ulat」に対して「undefined」を吐き出すことを意味します)。
var ulat;
function write(latitude) {
ulat = latitude;
document.write("<h1> This works:" + ulat + "</h1>");
}
function getloc() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function(position) {
write(position.coords.latitude);
},
function (error) {
switch(error.code) {
case error.TIMEOUT:
alert ('Timeout');
break;
case error.POSITION_UNAVAILABLE:
alert ('Position unavailable');
break;
case error.PERMISSION_DENIED:
alert ('Permission denied');
break;
case error.UNKNOWN_ERROR:
alert ('Unknown error');
break;
}
});
}
else {
alert("Geolocation is not supported by your web browser.");
}
}
function main() {
getloc();
document.write("<h1> This doesn't work: " + ulat + "</h1>");
}
何か助けはありますか?ありがとう!