1. 자바스크립트의 객체와 함수
- js는 자료형을 명시하지 않는다. (-> 자료형을 명시하는 TypeScript가 있긴 함.)
- js에서는 자료형을 알아서 판단하는데 자료형으로는 Boolean, Number, String, undefined, null, Object 가 있다.
- 타입을 확인하고 싶을 때는 typeof 연산자를 사용한다.
- 문자열을 숫자로 변환하고 싶을 땐 parseInt()로 정수형으로, parseFloat()로 부동소수점 형태로 바꿀 수 있다.
- js의 객체는 변수 = {} 로 할당한다.
- 아래와 같이 객체의 속성은 대괄호를 통해서 할당하거나 . 연산자를 통해 할당할 수 있다.
let Person = {};
Person['age'] = 20;
Person['name'] = pure;
Person.mobile = 010-1234-5678;
console.log(Person.age);
console.log(Person.name);
console.log(Person['mobile']);
- js에서는 변수에 함수도 할당할 수 있다.
- let add = function(a,b) { return a + b };
- 위와 같은 경우 함수의 이름이 없이 바로 파라미터를 넣는 형태기 때문에 익명 함수라고 부른다.
- 이런식으로 설정한 경우는 선언문이 아니라 표현식이기 때문에 엄밀하게는 ; 을 넣어주는 것이 옳다. (하지만 js는 브라우저에서 알아서 마지막에 세미콜론이 안들어가있는 경우는 넣어서 읽어준다.)
2. js의 배열
- 배열은 [] 로 만들고 push()를 통해 요소를 추가한다.
- 배열의 요소를 모두 꺼내어 확인하고 싶다면 for문이나 forEach문을 사용한다.
- 배열에 값 추가 및 삭제하는 메서드
- push(object) : 배열의 끝에 요소 추가
- pop() : 배열의 끝에 있는 요소 삭제
- unshift() : 배열의 앞에 요소 추가
- shift() : 배열의 앞에 있는 요소 삭제
- splice(index, removeCount, [Object]) : 여러 개의 객체를 요소로 추가하거나 삭제
- slice(index, copyCount) : 여러 개의 요소를 잘라내어 새로운 배열 객체로 만들기
3. 콜백함수 이해하기
- 함수를 호출했을 때 또 다른 함수를 파라미터로 전달하는 것.
- 비동기 프로그래밍 방식으로 코드를 짤 때 필요.
- 콜백 함수는 함수가 실행되는 중간에 호출되어 상태 정보를 전달하거나 결과 값을 처리하는 데 사용됨.
4. 프로토타입 객체 만들기
- 객체 지향 언어와 같이 js에서도 객체의 원형을 정의한 후 그 원형에서 새로운 인스턴스 객체를 만들어낼 수 있다.
- js에서는 함수도 객체라 함수 선언 시 this를 사용하면 함수를 호출하는 객체를 가리키게 된다.
- 아래의 Person 객체는 실제 데이터를 담기 위한 것이 아니라 그저 틀일 뿐이다.
- 이 prototype객체를 활용해 실제 데이터가 담긴 인스턴스 객체를 생성함으로써 메모리를 효율적으로 관리할 수 있다.
- 함수 객체를 만들 때 prototype 속성은 자동으로 같이 만들어진다.
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.walk = function(speed) {
console.log(speed + 'km 속도로 걸어갑니다.');
}
let person01 = new Person('pure', 20);
let person02 = new Person('dirty', 22);
console.log(person01.name + '객체의 walk(10)을 호출');
person01.walk(10);
// pure 객체의 walk10)을 호출
// 10 km 속도로 걸어갑니다.