객체와 배열

2015. 1. 20. 15:45[개발] 지식/JavaScript

  • 배열
배열에는 '인덱스'와 '요소'가 있다.

ex)
<script>
var array = ['사과', '바나나', '망고', '딸기'];
</script>

각각의 배열 요소를 사용하려면 인덱스로 접근
-> array[0], array[1].....

  • 객체
객체는 '키'와  '속성'으로 이루어져있음.
ex)
<script>
var product = {
제품명 : ' 7D 건조 망고'

}
</script>

위의 예제로부터 만들어진 product 객체에서 속성값을 얻는 방법은 2가지가 있다.
하나는
product['제품명']

나머지 하나는

product.제품명


또한 객체의 키는 식별자 또는 문자열을 모두 사용할 수 있다. 대부분 개발자가 식별자를 키로 사용하지만, 식별자로 사용할 수 없는 단어를 키로 사용할 때는 아래처럼 문자열을 사용한다.

<script>

var object = {

'with space' : 273,

'with ~!@#$$%$%^&^&*' : 52

}

</script>

이와 같이 식별자가 아닌 문자를 키로 사용했을때는 무조건 대괄호를 사용해야 객체의 요소에 접근할 수 있음.




  • 객체와 반복문
ex)
for(var key in product){
output += '-' + key + ': ' + product[key] + '\n';
}
alert(ourput);



  • in 키워드
해당 키가 객체안에 있는지 확인할 때 사용. boolean 리턴.
ex)
var student = {
이름 : '연하진'
}

// true 출력
alert(
'이름' in student
);

  • with 키워드
- 사용법
with(객체){
//코드
//여기서는 객체의 속성값을 불러올때, 객체이름을 생략해도 됨.
// 예를들어, student.이름... 이런식으로 '이름'속성을 불러오지만
//여기 with절 내부에서는 '이름'만 사용해도 속성값을 불러올 수 있음.
}


- with 키워드와 객체 충돌
만약 with 키워드를 사용하는 객체의 속성 이름과 외부 변수의 이름이 같으면 충동이 발생한다. 
이 경우 자바스크립트는 객체의 속성을 우선한다. (경고가 안뜸)
해결방법은 외부 변수를 window.외부변수 이런식으로 사용하면 되는 것..
꼭 window 객체가 아니라 중복되는 변수의 객체를 앞에 써주면된다.
window를 사용한 이유는 자바스크립트의 모든 변수와 함수는 window 객체의 속성과 메서드이기 때문이다.





<