「프론트엔드 개발자를 위한 자바스크립트 프로그래밍」 서적을 참조했으며, 3장에 대한 요약 및 정리를 진행하려고 한다.
제어문
- If 문
- do while문
- 평가 전 루프
- 루프의 종료 조건을 평가하기 전에 루프의 본문을 실행
- while문
- 평가 후 루프
- 루프 본문을 실행하기 전에 종료 조건을 평가
- for문
- 평가 후 루프
- 루프에 들어가기 전 변수 초기화 가능
- for-in 문
- 엄격한 반복문
- 객체 프로퍼티를 나열하는데 사용
- 순서가 따로 존재하지는 않음
- break / continue
- 루프 내부의 코드 실행을 세밀하게 조절 가능
- break: 즉시 루프에서 벗어남
- continue: 다음 루프 진행
- 문장 레이블과의 조합을 통해 루프를 유연하게 만들 수 있음. but 과용하면 디버그에 문제 발생할 수 있음
- with 문
- 코드의 스코프를 특정 객체에 고정
- strict 모드에서는 금지
- switch 문
- if문과 유사
- case: 표현식이 value와 일치하면 해당 구문을 실행
- 모든 데이터 타입에서 동작
- 값은 상수일 필요 없음. 변수나 표현식도 가능
- 일치 연산자로 값을 비교하기 때문에 타입 변환은 일어나지 않는다
함수
- 문장을 캡슐화하여 어디서든, 언제든 실행할 수 있게 함
- 언제든 무슨 값이든 반환 가능
- 값을 반환하지 않는 함수는 undefined를 반환
- 매개변수
- 데이터 타입을 체크하지 않음
- 매개변수 개수만큼 넘기지 않으면 나머지 값들은 undefined
- 함수에서 매개변수를 두 개 받도록 만들었더라도 반드시 두 개를 넘길 필요는 없음
(인터프리터는 에러로 간주 하지 않음) - arguments라는 객체를 통해 매개변수 값에 접근할 수 있음 (유사 배열 객체)
- 매개변수의 길이(개수)
- 정보 변경
- 단방향이기 때문에 매개변수 값을 변경하더라도 arguments[]의 값은 변경되지 않는다
- 매개변수의 개수에 맞게 호출된 경우 -> arguments[]의 값을 바꾸면 매개변수의 값도 변경
(매개변수와 arguments[]는 메모리 공간이 다르지만 값을 변경하면 함께 변경) - 매개변수의 개수와 다른 경우 -> arguments[]에서 프로퍼티 접근 제한 -> 변경 x
- strict 모드에서는 arguments[]를 변경하더라도 매개변수 값을 변경 불가
- 오버로딩이 존재하지 않음
- ECMAScript 함수에는 시그너처(매개변수의 데이터 타입, 매개변수 개수)가 없기 때문에 진정한 의미의 오버로딩이 불가능
- 같은 이름으로 함수를 여러 번 정의하면 마지막 함수가 해당 이름을 소유
'Tech > Javascript' 카테고리의 다른 글
자바스크립트 프로그래밍 4장 (변수와 스코프, 메모리) (0) | 2020.05.05 |
---|---|
자바스크립트 프로그래밍 3장 (언어의 기초) - 3.5 (0) | 2020.04.29 |
자바스크립트 프로그래밍 3장 (언어의 기초) - 3.1 ~ 3.4 (0) | 2020.04.27 |
자바스크립트 프로그래밍 2장 (Html 속의 자바스크립트) (0) | 2020.04.24 |
자바스크립트 프로그래밍 1장 (0) | 2020.04.23 |