2012-02-17 11 views
1

이것은 기본적으로 JSON 스크립트의 디코딩 방식에 대한 이론적 인 질문입니다. 저는 JSON과 JavaScript를 처음 사용하기 때문에 자습서를 작성했습니다. 작업 할 몇 가지 예제 코드를 제공해주었습니다. 나는 내가 저지른 실수로이 사실을 알았다. 예제 코드는이 항아리JSON 객체 생성 및 JSON 배열 조작

<html> 
<body> 
<h2>Create Object from JSON String</h3> 
<p>First Name: <span id="fname"></span></p> 
<p>Last Name: <span id="lname"></span></p> 
<script type="text/javascript"> 
var employees = [ 
{ "firstName" : "John" , "lastName" : "Doe" }, 
{ "firstName" : "Anna" , "lastName" : "Smith" }, 
{ "firstName" : "Peter" , "lastName" : "Jones" }, ]; 
employees[1].firstName="Jonatan"; 
employees[2].lastName="Holla"; 
document.getElementById("fname").innerHTML=employees[1].firstName; 
document.getElementById("lname").innerHTML=employees[2].lastName; 
</script> 

</body> 
</html> 

내가 다음 output--

Create Object from JSON String 

First Name: Jonatan 

Last Name: Holla 

을 얻을 것이었다 그러나 나는 실수로 코드의 라인 (14)을 수정하여 실수를 저지른. "lname"대신 "fname"을 다시 입력했습니다.

document.getElementById("fname").innerHTML=employees[2].lastName; 

IT는 왜이
Create Object from JSON String 

First Name: Holla 

Last Name: 

output-- 일어나지 않았다 다음했다? fname에서 getElementId를 두 번째 호출하면 "이름"필드에 "Holla"가 출력됩니다. 그러나 그 성명서는 이전의 진술에 의한 어떤 영향을 어떻게 무효화 했습니까? (즉, 13 행)?

+1

내가 13 번째 줄 보는 방법은 First Name을 "Jonathan"으로 설정하고 실수로 14 번째 줄을 "Holla"로 덮어 씁니다. span # lname은 절대로 변경되지 않기 때문에 성은 비워 둡니다. 나에게 이것은 완벽한 의미를 갖는다. –

+1

코드에 JSON이 표시되지 않습니다. 자바 스크립트 객체와 배열 만. –

답변

2

부정하지 않고 덮어 씁니다.

은 먼저 말 :에 fname에 "요나탄"를 작성합니다. 그런 다음 fname에 "Holla"라고 씁니다. 그래서 결국 "홀라"만 보게됩니다. 더 이상 설정하지 않기 때문에

그리고 LNAME이 비어 - 대신 2 번에 fname을 설정합니다.

+0

좋습니다. 스크립트가 실행될 때 화면에 출력이 나타나기 전에 모든 .innerHTML 메서드가 평가됩니다. 내가 맞습니까? –

+0

예,이 스크립트는 즉시 실행되며 결과는 결과입니다. – Ixx