JavaScript에서 모든 데이터는 객체로 되어있다. JavaScript에서 데이터는 모두 래퍼클래스에 담기기때문이다. 데이터를 담는 래퍼클래스는 Number(정수,실수), String(문자,문자열). Boolean(부울)이 있다. 자바스크립트에서 문자와 문자열 구분하지않는다.
varx=3;// var x = new Number(3); 와 같은 뜻x는 따로 공간을 할당받지 않으며 단지 '참조'만 한다.
varx;alear(x==undefined);undefined는 문자열이 아닌 하나의 값이므로 "undefined"로 두고 비교하지 않도록 주의하자.
- stack 형식
varnums=newArray();nums.push(2);nums.push(3);nums.push(5);vardata=nums.pop();alert(data);// 5- list 형식
varnums=newArray();nums[0]=2;nums[1]=3;nums[2]=5;// num[4]=4; nums[3]은 undefinedalert(nums[2]);// 5생성자에 하나의 인수를 넣어주면 그 만큼 공간을 할당한다. 하지만 인수를 2개이상 넣어주면 그 인수들을 배열의 요소로 선언한다.
varnums=newArray(3,2)// var nums = [3,2];가 됨 splice() 메소드를 이용한 데이터 관리
varnums=newArray(5,10,21,"hello","haha");nums.splice(4);//4부터 끝까지 다지워라num.splice(3,1);//3부터 1개만 지워라num.splice(1,0,"hoho");//1의 자리에 hoho 대입JavaScript는 객체를 만들고 정의를 한다.(동적인 객체)
varexam=newObject();exam.kor=30;// Expand Objectalert(exam.kor);// exam["kor"]=30;와 같음exam.kor와 exam["kor"]는 같은데 왜 두개의 표현이 존재할까?
변수에 답겨진 문자열을 이용하여 객체 속성을 꺼내거나 대입할때 exam["kor"]형식을 사용
varstr='kor';alert(exam[str]);Object()는 hash형임
간단한 데이터 하나를 변수에 담으려고해도 객체를 만들어야함. 너무 복잡함. 이를 쉽게 표기할 수 있는 표기법이 바로 JSON
varar=newArray();// var ar=[];varexam=newObject();// var ha={};varar=[3,4,5,6,exam.[7,8,9]];varexam={"kor":30,"eng":70,"math":80};현재 json은 자바스크립트를 벗어나서 모든 언어에서 데이터를 포장할 때 사용할 수 잇는 포멧으로 사용됨.
공공데이터들을 json형식으로 다운 받고 사용할 수 있는데 이들은 문자열로 되어있다. 문자열 데이터를 어떻게 객체로 만들 수 있을까?
data='var x = 5;';eval(data);alert(x);// 5