러닝 자바스크립트 3장 정리

변수

기존의 var 와 더불어 let 키워드가 새로 생겼다.

 

let currentTempC = 22;

이 문은 currentTemp 변수를 선언하고 초깃값을 할당하는 두가지 일을 한다.  

currentTempC의 값은 언제든지 바꿀 수 있다. 

변수를 선언할 때 꼭 초깃값을 지정해야 하는 것은 아니다. 초깃값을 할당하지 않으면 임시로 'undefined'가 할당된다.

let currentTempC;let currentTempC = undefined; 와 같다.

 

또한 let 문 하나에서 변수를 여러 개 선언하는것도 가능하다. 

let targetTempC, room1 = "conference_room_a", room2 = "lobby"; 

변수 3개를 선언했는데 targetTempC는 값을 할당하지 않았으므로 undefined를 받는다.

 

상수

상수는 ES6에서 새로 생겼는데 변수와 마찬가지로 값을 할당받을 수 있다. 하지만 한 번 할당한 값을 바꾸는것은 불가능하다. 

const ROOM_TEMP_C = 21.5, MAX_TEMP_C = 30;

상수 역시 여러개를 선언할 수 있고 보통 대문자와 밑줄만을 사용한다. 

 

리터럴 

리터럴이란 값을 프로그램 안에서 직접 지정한다는 의미로 리터럴은 값을 만드는 방법인 것이다. 리터럴과 식별자의 차이를 이해하는것이 가장 중요하다. 

 

let room1 = "conference_room_a";

 - " " (따옴표) 안이 리터럴이다. let room1에게 conference_room_a 라는 값을 준 것이다. 

 

let currentRoom = room1;

 - currentRoom의 값은 room1의 값과 같다는 뜻이다. 

 

currentRoom = conference_room_a;

- 에러가 발생한다. conference_room_a란 식별자는 존재하지 않기때문이다.

 

객체

const obj = {};

객체의 콘텐츠는 프로퍼티, 멤버라고 부르며 프로퍼티는 이름(키)과 값으로 구성되어있다. 프로퍼티의 이름은 반드시 문자열 또는 심볼이어야 하며 값은 어떤 타입이든 상관없다. 다른 객체여도 가능하다. 

 

obj.color = "yellow";

 

obj ["not an identifier"] = 3;

obj ["not an identifier"];           //3

obj ["color"];                         //yellow

 

프로퍼티의 이름에 유효한 식별자를 써야 멤버 접근 연산자 ( . ) 을 사용할 수 있다. 프로퍼티 이름에 유효한 식별자가 아닌 이름을 쓴다면 계산된 멤버 접근 연산자 ( [] )를 사용해야한다. 프로퍼티 이름이 유효한 식별자여도 대괄호로 접근가능하다. 

 

const sam = { 

name : 'sam', 

classification: {

         kingdom : 'Anamalia',

         family : 'Feildae',

         subfamily : 'Felinae',

         species : 'catus'}

};

 

sam의 classification 프로퍼티는 그 자체로 객체가 된다. 여기서 sam의 family에 접근하는 방법에는 여러가지가 있다.

 

sam.classification.family;

sam["classification"].family;

sam.classification["family"];

sam["classification"]["family"]

 

모두 같은 곳을 가리킨다.

 

배열 

자바스크립트의 배열은 몇가지의 특징을 가지고 있다.

 - 배열의 크기는 고정되지 않는다. (언제든 요소를 추가하거나 제거할 수 있음)

 - 요소의 데이터 타입을 가리지 않는다. (문자열만 쓸 수 있는 배열, 숫자만 쓸 수 있는 배열 구분이 없음)

 - 배열 요소는 0으로 시작한다. 

 

const a1 = [1, 'two', 3, null];

  - 여러가지 타입으로 구성된 배열 

 

const a2 = [

"what the hammer? what the chain?",

"In what furnace was thy brain?"];

 - 여러 줄로 정의한 배열 

 

const a3 = [

{ name : "Ruby", hardness: 9 }.

{ name : "Diamond", hardness: 10}

];

 - 객체가 들어있는 배열

 

const a4 = [

[ 1, 3, 5 ]

[ 2, 4, 6 ]

];

 - 배열이 들어있는 배열 

 

자바스크립트는 위와 같이 여러 형식의 배열형태가 가능하다. 이떄 배열 리터럴을 대괄호 안에 배열 요소를 쉼표로 구분해서 써야한다. 

TAGS.

Comments