Я новичок в Javascript, и следующий код выводит меня из себя. Насколько я понимаю, вы можете назначать значения глобальным переменным, опуская переменную перед ними, и вам не нужно определять какое-либо начальное значение, когда вы объявляете глобальное значение в первую очередь. Однако почему следующий код не работает? (Не работая, я имею в виду, что вызов document.write в main () выдает «undefined» для «ulat»).
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>");
}
Любая помощь? Спасибо!