1. var 변수 선언의 문제점
- 변수의 중복 선언 허용
- ES6이후, 이를 보완하기 위해 추가된 변수 선언 방식이 let와 const이다.
1-1. let과 const의 차이점
- let은 변수의 재할당이 가능
- const는 변수 재선언, 재할당이 불가능
- 변수 선언에는 기본적으로 const를 사용하고 재할당이 필요한 경우에 한정해 let을 사용하는 것이 좋다.
2. 자바스크립트 호이스팅
- javascript 호이스팅은 인터프리터가 코드를 실행하기 전에 함수, 변수, 클래스 또는 임포트(import)의 선언문을 해당 범위 맨 위로 끌어올리는 것처럼 보이는 현상
- function이 만들어지는 시점과 호출하는 시점의 코드상의 차이는 있으나, 자바스크립트 호이스팅 현상으로 정상작동
- 그러나 함수 표현식은 호이스팅이 적용되지 않는다.
3. Array
3-1. 배열이란
- 변수를 그룹으로 묶는 형태의 한 종류로서, 사물함 같은 형태를 갖고 있다.
- 대부분의 프로그래밍 언어에서 하나의 배열 안에는 같은 종류(데이터형)의 값들만 저장될 수 있지만, javascript는 데이터 형의 선언을 별도로 하지 않기 때문에 데이터 형에 대한 제약이 없다.
3-2. 배열 생성
- let myarray = new Array(값1, 값2, ...);
3-3. 인덱스
- 생성된 배열은 사물과 같이 각각의 칸에 값들이 저장되고, 일련번호가 0번부터 지정된다. 일련번호 = 배열의 인덱스
3-4. 2차배열
let myarray = new Array(
new Array(값1, 값2, ...),
new Array(값1, 값2, ...)
);
let myarray = [
[값1, 값2, ...],
[값1, 값2, ...]
];
3-5. 2차배열 사용
3.6 길이(크기) 조회
4. 객체
4-1. 객체 생성 과정
- 빈 객체의 생성
: 아무런 기능이 없는 상태의 빈 객체
이 상태가 prototype
- 변수의 추가, 함수의 추가, 배열의 추가
4-2. 빈 객체의 생성
- 빈 객체를 만드는 것은 블록괄호{}를 지정하는 것으로 표현된다.
let people = {};
4-3. 변수의 추가
- 객체 안에 추가되어 있는 변수를 멤버변수 혹은 프로퍼티라고 한다
- 변수를 추가하기 위해서는 객체이름.변수명 = 값 의 형식을 사용한다.
- 선언을 위한 별도의 let, const 키워드는 사용되지 않는다.
people.name = "jh";
people.gender = "M";
4-4. 메서드 안에서 객체 자원 활용
- 객체 안에 포함된 메서드에서 다른 메서드를 호출하거나, 프로퍼티를 활용하고자 하는 경우에는 this 키워드를 사용한다.
- this.변수이름 = 값;
- let 변수이름 = this.함수이름(값);
+α : 자바와 달리 자바스크립트에서의 변수는 어떤 타입의 값이든 할당할 수 있다. 즉, 함수도 변수에 할당가능