В следующем коде предупреждение внутри функции работает нормально, но второе имеет переменную неопределенную, и все же я разделил переменную за пределами функции. Почему это?Javascript Область применения: переменная не определена
var data = [];
$.post(
'matchEngine.php',
function(data) {
for (var i = 0, len= data.length;i <len; i++) {
for (h = 0, len2= data[i].length;h <len2; h++) {
data[i][h][0]=(data[i][h][0])*30;
data[i][h][1]=(data[i][h][1])*30;
data[i][h][3]=data[i][h][3].replace(/\"/,"");
}
}
alert(data[0][0][0]);
}
);
alert(data[0][0][0]);
, если вы страдаете подобную проблему следующим How to return the response from an AJAX call? имеет однозначного объяснения и ответ.
Подсказка: асинхронной против синхронизации. –
@rob ах !!, хорошо извините! – Gamemorize
В дополнение к дубликату выше, объясняющему, как справиться с проблемой, стоит отметить, что 'function (data) {' создает новую локальную переменную, называемую 'data', которая маскирует ее из более широкой области. – Quentin