본문 바로가기

분류 전체보기77

JavaScript - Object(2) 객체는 다른 데이터 타입(텍스트, 숫자, 배열 등..)처럼 변수에 저장할 수 있다. {}(중괄호)만 사용하면 되는데, 이렇게 {}으로 생긴 모양의 객체를 object literal(객체 리터럴)이라 부른다. hello라는 변수에 빈 객체를 할당해본다면, let hello = {}; 이렇게 할당해 줄 수 있다. 객체에는 순서가 없는 데이터의 모임이다. 반대로 순서가 있는 데이터는 배열이다. let arr = ['고양이', '귀여워', '멍멍이', '좋아']; arr의 요소가 차례대로 추가된 것이고 index는 0부터 시작한다. arr[0]은 '고양이'이고, arr[1]은 '귀여워'이다. 객체는 키(key)-값(value)쌍으로 된 데이터의 모음으로써 순서가 뒤 바뀌어도 아무 상관이 없다. 배열처럼 순서대로.. 2020. 7. 5.
JavaScript - Class 클래스는 객체지향 프로그래밍의 핵심이다. 객체지향 프로그래밍이란, 프로그램을 객체들로 구성하고, 객체들 간에 서로 상호작용하도록 작성하는 방법이다. JavaScript는 객체지향 중심에 있는 언어는 아니지만, 프로그래밍에 있어서 Class, 객체, 객체지향은 항상 중요한 주제이다. "객체지향 프로그래밍"이라는 단어에서 "객체"는 앞서 배웠던 { num:1 }의 데이터 타입을 말하는 것이 아닌, object, 사물을 뜻한다. 하지만, 클래스는 결국 { num: 1 } 처럼 생긴 객체(object)를 잘 설계하기 위한 틀은 맞다. 그런데 이때의 객체는 특정 로직을 갖고 있는 행동(method)과 변경 가능한 상태(멤버 변수)를 가진다. 원하는 구조의 객체 틀을 짜놓고, 비슷한 모양의 객체를 공장처럼 찍어낼 .. 2020. 7. 5.
JavaScript - Scope JavaScript에서 scope란, '변수가 어디까지 쓰일 수 있는지'의 범위를 의미한다. (주의. 문법 아님!) ***is not defined라는 에러를 한 번이라도 경험했을 수 있었을 텐데, 이 에러는 변수가 아직 선언되지 않았다는 뜻이다. 변수를 선언했는데도 에러를 경험했다면, 변수를 선언한 영역에(block에) 접근할 수가 없어서 컴퓨터가 변수가 선언되었다는 사실을 알지 못해서 그랬을 것이다. 그래서 변수가 선언되지 않았다는 오류 메시지를 출력하게 되는 것이다. 어떤 변수는 여기저기서 쓸 수 있는 반면에, 어떤 변수는 특정 함수 내에서만 쓸 수 있다. 이런 개념이 바로 scope이다. Block scope를 알기 전에 먼저 알아야 할 개념은 block이다. block이란, 중괄호({}, cur.. 2020. 7. 4.
JavaScript - Object 객체는 {}(중괄호)로 감싸져 있고, 클론으로 구분된 이름/값 쌍들이 쉼표로 분리된 목록의 형태이다. 다시 말해, 객체는 이름과 값으로 구성된 프로퍼티들의 집합이라 할 수 있다. 여기서 주의할 점은 프로퍼티 이름이 중복되어선 안된다. 객체의 예) let plan1 = { name: "Basic", price: 3.99, space: 100, transfer: 1000, pages: 10 }; 위의 규칙을 지켜 객체를 만들 수 있다. property 이름은 중복될 수 없다. property 이름과 property값 사이에 :(콜론)으로 구분한다. property를 추가할 때는 ,(쉼표)를 붙여준다. property값에는 어느 type이나 가능하다.(string, number, array, object, f.. 2020. 7. 4.