私は、forループAJAXのバージョンが他のものと同じように数字を出力しないことに気付きます。それはなぜですか? The number version linkajaxのforループの.length使用とnumber出力の.length使用の違いは何ですか?
とAJAXバージョン。
INPUT
<!DOCTYPE html>
<html>
<body>
<div id="demo">
<button id="bg" type="button" onclick="x()">Change Content</button>
</div>
<script>
function x() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
var employees = JSON.parse(xhr.responseText);
document.getElementById("demo").innerHTML = "";
for(var i=0;i<employees.length;i++){
employee = employees[i];
document.getElementById("demo").innerHTML += '<br>' + employee.name;
}
}
};
xhr.open("GET", "burgerking.json", true);
xhr.send();
}
</script>
</body>
</html>
OUTPUT
スティーブ ダン ケン
length属性は常に数値を返します。あなたの 'for'ループでは、あなたが作成した' employees'変数の長さを返します。より一般的には、反復可能なオブジェクトの長さに達するまでループするために、forループの長さ属性が使用されます。 – Sventies
*名前の長さ*対*名前の数*。 – Rajesh
だから私はあなたが正しく理解している場合は、ループ内で使用されている.lengthは、各プロパティのすべての文字を生成する責任がありますか?例えばスティーブ、ダン、ケン?そして、他の非ループ版は文字を数えるために使われますか?例えばスティーブ= 5? –