. JavaScript 의 객체와 배열
: 실세계의 객체들을 다룰 수 있도록 자바스크립트에 객체 개념이
도입되었다. 객체의 고유힌 속성을 property라고 부르며
객체는 여러 property와 값의 쌍으로 표현된다.
또한 객체는 여러개의 함수를 가질 수 있는데 함수를 method라고
부른다. 메소드는 다른 객체나 코드로 부터 호출되며,
주로 객체 내부의 프로퍼티 값을 조작하거나 연산을 수행하고
결과를 리턴한다.
. 자바 스크립트 객체 유형
: 개발자가 자바스크립트 코드로 객체를 만들어 사용할 수 있지만
브라우저는 많은 자바스크립트 객체를 만들어 제공하므로 이들을
사용하기만 하면 된다. 브라우저가 제공하는 자바스크립트 객체는
다음의 3가지 유형으로 나뉜다.
. 코어 객체 : 기본 객체로서 Array, Date, String, Math 타입등이
있으며, 웹 페이지나, 웹 서버 응용프로그램 어디서나 사용할 수 있다.
*** . HTML DOM 객체 : HTML 페이지에 작성된 HTML 태그들을
브라우저가 하나씩 객체화 한(DOM : Document Object Model) 것들로
HTML 페이지의 내용과 모양을 제어하기 위해 사용되는 객체들이다.
//태그 자체를 object(객체)로 본다.
. 브라우저 관련 객체(BOM) : 브라우저의 종류나, 스크린의 크기 정보를 제공하거나
새 윈도우를 생성하는 등 브라우저와 관련된 객체들로
BOM(Browser Object Model)이라고 부른다.
. 코어 객체 종류
: 코어 객체들은 자바 스크립트 언어가 실행되는 어디서나 사용 가능한
객체들로서 여러 타입이 있다.
: 코어 객체의 생성은 항상 new 키워드를 사용한다.
var today = new Date();
var msg = new String("Hello");
여기서 today, msg 는 생성된 객체를 가르키는 레퍼런스 변수이다.
이것을 객체라고 부른다.
. 객체의 접근
: 객체가 생성되면 객체 내부에는 프로퍼티와 메소드가 존재하며
이들은 점(.) 연산자를 이용하여 접근한다.
obj.프로퍼티 = 값; => 객체 obj의 프로퍼티 값 변경
변수 = obj.프로퍼티; => 객체 obj 의 프로퍼티 값 알아내기, 변수에 대입
obj.메소드(매개변수,,,); => 객체 obj 의 메소드 호출
. Array
: 배열 : 배열은 여러개의 원소들을 연속적으로 저장하고
전체를 하나의 단위로 다루는 데이터 구조이다.
배열의 각 원소는 []기호와 0에서 시작하는
인덱스를 이용하여 접근한다.
. 배열 만드는 방법
1. []로 배열 만들기
2. Array 객체로 배열 만들기
: 만드는 방법은 다르지만 일단 배열이 생성되면
사용하는 방법은 같다.
var week = ["월","화","수","목","금","토","일"];
var plots = [-20, -5, 0, 15, 20];
week[6] = "Sunday"; => week[6] 의 값을 "일"에서 "Sunday"로 변경
var p = plots[1]; => p는 -5
. 배열 크기와 원소 추가
: 배열은 처음 만들어진 크기로 *고정되지 않고*(자바와 차이점), 원소를 추가하면 늘어 난다.
plots[5] = 33;
plots[6] = 77;
. Array로 배열 만들기
: 자바스크립트의 코어 객체인 Array를 이용하여 배열을 생성할 수 있으며
앞의 week배열을 Array를 이용하여 배열을 만들면
var week = new Array ("월","화","수","목","금","토","일");로 된다.
var week = ["월","화","수","목","금","토","일"];
var day = week[0]; => day는 "월"
week[1] = "tuesday"; => "화" 대신 "tuesday"가 저장
. 비어있는 배열 생성
: 초기에 배열의 원소 갯수를 예상할 수 없는 경우
빈 배열을 생성할 수 있다.
var week = new Array();
week는 빈 배열이지만 원소를 *순서대로* 삽입하면
배열의 크기가 자동으로 늘어난다.
반드시 인덱스는 순서대로 삽입하여야 한다.
. 배열 생성 방법 의미
new Array(); 빈 배열 생성 추가할 때 마다 배열 크기 자동 늘림
new Array(size); size 갯수의 배열 생성, 원소 초기화 되지 않음
new Array(e1, e2, ~, en) n개의 원소에 대한 초기값과 함께 배열 생성
. 배열의 특징
: 자바스크립트의 배열은 []로 생성하든 new Array()로 생성하든 모두 Array() 객체로 다룬다.
그러므로 모두 아래의 Array 객체 메소드를 사용할 수 있다.
또한 배열은 다양한 데이터가 혼재되어 저장할 수 있다.
메소드 의미
concat(arr) 현재 배열에 배열 arr 원소들을 덧붙여 만든 새 배열
join(separator) 배열의 모든 원소들을 연결하여
하나의 문자열로 만들어 리턴, 각 원소 사이에
separator 로 지정된 문자열 삽입, separator 가
생략되면 ','가 사용
reverse() 원소들을 역순으로 재배열하고 이를 복사한 새로운 배열 리턴
slice(idxA[,idxB]) 두 인덱스 idxA와 idxB 사이의 원소들로 구성된
새 배열 리턴, idxB의 원소는 포함되지 않음
idxB가 생략되면 끝 원소까지 포함
sort() 문자열을 사전순으로 정렬하고 이를 복사한 새 배열 리턴
toString() 원소들을 모두 연결하여 하나의 문자열로 만들어 리턴, 원소와 원소사이','삽입
. Date
: Date 객체는 시간 정보를 담는 객체이다.
var now = new Date() ; => 현재 날짜 시간(시,분,초)값으로 초기화된 객체 생성