모던 자바스크립트 입문
아소 히로시 지음, 서재원 옮김
길벗
간만에 주말에 책 펴놓고 공부 시전. 자바스크립트 기초에 해당하는 부분이라 쓱쓱 보고 넘어 갔다. 보다가 어 이런것도 있었네 하는 부분과 알지만 중요한 부분을 기록해 둔다.
-
4.객체와 배열, 함수의 기초
- 4.1 객체의 기초
- 객체에 포함된 데이터를 가리켜
프로퍼티
라 한다. - 프로퍼티에 저장된 값의 타입이 함수일 경우 이는
메서드
라 한다. - 객체에 없는
프로퍼티
를 읽을 경우undefined
리턴 - 객체는
참조
타입, 객체 타입의 값을 변수에 대입하면 해당 변수에는 메모리의 위치가 기엄됨. - 4.2 함수의 기초
- 함수 이름은 일반적으로
동사
또는동사 시작어휘
로 만든다. - 인수에 원시값을 넣으면 그 값 자체가 인자로 전달 되지만, 인수로 객체를 넘길 경우 전달 되는 값은 참조값이다. 함수의 인수로 객체를 넘기면 함수 안에서 원래의 객체를 변경 할 수 있다.
-
let
과const
- 사용법은
var
와 같으나 변수의 유효 범위는 블록 안으로 한정. let문
으로 선언된 변수는 호이스팅 되지 않는다.let문
으로 똑같은 변수 선언시 문법 오류 발생.const
는let
과 사용법은 같으나 반드시 초기화 해야 하는점이 다름.const
로 선언한 상수값은 수정할 수 없으나, 상수값이 객체나 배열일 경우 프로퍼티 또는 프로퍼티 값은 수정할 수 있다.
- 사용법은
- 일반적으로
메서드
는 메서드가 속한 객체의 내부 데이터 상태를 바꾸는 용도로 사용. -
함수를 활용하면 얻을 수 있는 이점.
- 재사용 할 수 있다.
- 이해가 쉽다.
- 유지보수가 편해진다.
- 4.3 생성자
-
new 연산자
를 이용해 객체를 생성할 것이라 기대하고 만든 함수를생성자
라한다.// 생성자 예시 function Card(suit, rank) { this.suit = suit; this.rank = rank; }
- 4.4 내장 객체 (생략)
- 4.5 배열의 기초
-
length
프로퍼티length
프로퍼티에 현재의 배열 요소 개수보다 작고 0보다 큰 정수값을 대입하면 배열의 길이가 줄어듬. 즉, 배열 길이를 넘는 인덱스는 삭제됨.- 배열 길이보다 큰 정수값을 대입하면 새로운 요소가 추가되지는 않고
length
프로퍼티 값만 변경된다.
- 배열은 객체이다.
-
5.표현식과 연산자
- 5.1 연산자 (생략)
- 5.2 산술 연산
- 정수끼리 나누어도 결과가 부동소수점이 된다. (c 나 java에서는 정수로만 나옴)
- 나머지 연산자 %의 피연산자는 부동소수점이다.
-
- 연산자는 피연산자 중 하나가 문자열이면 나머지 피연산자를 문자열로 만든다.
- 계산할 수 없으면
NaN
로 평가, - 5.3 문자열 제어하기
-
래퍼 객체(wrapper object)
- 문자열은 객체가 아니므로 프로퍼티를 가지고 있지 않다. 하지만 length 프로퍼티를 가지고 있는데 이는 length를 호출하는 시점에는 String 객체로 변환된다. 이러한 객체를 가리켜
래퍼 객체(wrapper object)
라고 한다. 자바스크립트에서는 원시 값을 처리할 때 원시 값을 래퍼 객체로 자동 변환 한다. - 문자열은 string, 숫자는 number, 논리값은 boolean 객체로 변환
- null과 undefindd는 래퍼객체가 없다.
- 문자열은 객체가 아니므로 프로퍼티를 가지고 있지 않다. 하지만 length 프로퍼티를 가지고 있는데 이는 length를 호출하는 시점에는 String 객체로 변환된다. 이러한 객체를 가리켜
- 자바스크립트에서 문자열은 불변(immutable)이다.
replace
와toUpperCase
메소드 등은 새로운 문자열을 반환하며 메서드를 호출한 문자열은 수정하지 않는다. - 5.4 논리연산자와 관계연산자 (생략)
- 5.5 비트 연산 (생략)
- 5.6 기타 연산 (생략)
이 코드는 모던 자바스크립트 입문(徹底マスターJavaScriptの教科書) 에서 인용한 것입니다.
[ISBN #978-4797388640]. Copyright 2017 by 磯博