Javascript에서 변수를 생성하는 방법을 보면 아래와 같다.
- 숫자(number)
ex) var no = new Number();- 문자열(string)
ex) var str = new String();- 참거짓(boolean)
ex) var isTrue = new Boolean();- 객체(object)
ex) var obj = new Object();- 함수(function)
ex) var func = new function(){};- 배열(array)
ex) var arr = new Array();- 정규식(regexp)
ex) var reg = new RegExp();
객체를 생성할 때 변수를 선언하고 new라는 연산자를 생성하고, 그 다음에 객체에 대한 정보를 담은 내용을 작성한다.
그런데 객체지향언어인 Javascript에서는 리터럴(literal)표기법이라는 것을 지원하는데, literal의 사전적의미를 보면 (문자그대로)를 뜻한다.
위에있는 객체생성자 문법을 리터럴(literal)표기법으로 바꾸면 아래와 같다.
- var no=3;
- var str='';
- var isTrue=true;
- var obj={nation:'korea', age:15};
- var func=function( ){ };
- var arr=[ ];
- var reg=/[a-z]/g;
따라서 리터럴(literal)표기법 이란 변수를 선언함과 동시에 그 값을 지정해주는 표기법이다.
let user = { name : tom age : 20 };
- : 을 기준으로 왼쪽에는 식별자 , 오른쪽에는 값이 위치한다.
- 객체 user에는 두가지 프로퍼티가 존재한다
첫번째는 name이라는 식별자(키)에 tom이라는 값을 가진 프로퍼티
두번째는 age라는 식별자(키)에 20이라는 값을 가진 프로퍼티
var memberObject = { manager : 'tom', developer : 'mike', designer : 'steve' };
.
을 작성하면 된다console.log("memberObject.designer", memberObject.designer); //memberObject.designer steve
console.log("memberObject.['designer']", memberObject['designer']); //memberObject.['designer'] steve
memberObject.designer = 'jerry' console.log(memberObject); //{ manager: 'tom', developer: 'mike', designer: 'jerry' }
delete memberObject.manager console.log(memberObject); { developer: 'mike', designer: 'jerry' }
var memberObject = { manager : 'tom', developer : 'mike', designer : 'steve' };
for(var name in memberObject){ console.log(name); } /// manager /// developer /// designer
- in 키워드 앞쪽에는 객체가 반복적으로 실행될 때 그 순번에 해당되는 원소의 이름이 주입될 변수가 오고, 뒤쪽에는 객체가 온다.
- 순번에 해당하는 원소의 값을 가져오고 싶을 때 memberObject.name을 작성하면 되는데,
.
뒤에는 변수가 올 수 없어서 [ ]를 사용해서 memberObject[name]으로 작성하면 된다.for(var name in memberObject){ console.log(name, memberObject[name]); } //manager tom //developer mike //designer steve