습관/독서
자바스크립트 코딩 기법과 핵심 패턴 - Day 4
향포레스트
2023. 1. 30. 22:26
728x90
독서진행 : 58-74p (종이책)
오늘의 메모
- 내장 생성자의 경우, 대개는 대응하는 리터럴 표기법을 쓰는 것이 낫다. 일반적으로 Date() 생성자를 제외하면 내장 생성자를 쓸 일은 거의 없다.
- 배열 리터럴 표기법은 대괄호 안에서 값 목록을 쉼표로 분리한다.
- JSON 객체와 배열 표기법으로 이루어진 데이터 형식이다.
- 자바스크립트는 함수를 다양한 방법으로 사용한다. 따라서 함수를 완벽히 익히는 것은 자바스크립트 개발자에게 필수 기술이다. 다른 언어에서는 별도의 문법으로 처리하는 다양한 작업들을 자바스크립트에서는 함수가 수행한다.
- 함수는 런타임, 즉 프로그램 실행 중에 동적으로 생성할 수 있다. 변수에 할당할 수 있고, 다른 변수에 참조를 복사할 수 있으며, 확장가능하고, 몇몇 특별한 경우를 제외하면 삭제할 수 있다. 다른 함수의 인자로 전달할 수 있고, 다른 함수의 반환 값이 될 수 있다. 자기 자신의 프로퍼티와 메서드를 가질 수 있다.
- 일반적으로 말하자면 자바스크립트에서 함수는 하나의 객체라고 생각하면 된다. 다만 이 객체는 호출하여 실행할 수 있는 특별한 기능을 가지고 있다. 두 번째로 중요한 기능은 함수가 유효범위를 제공한다는 것이다. 자바스크립트에서는 중괄호 지역 유효범위가 없다. 달리 말해서 블록이 유효범위를 만들지 않는다. 단지 함수 유효범위가 있을 뿐이다. 어떤 변수이건 함수 내에서 var로 정의되면 지역 변수이고 함수 밖에서는 참조할 수 없다.
중괄호가 지역 유효범위를 제공하지 않는다는 말은 if 조건문이나 for문 while문 내에서 var로 정의해도, 이 변수가 if나 for문의 지역 변수가 되지 않는다는 뜻이다. 이 변수는 해당 블록을 감싸는 함수가 있을 때만 지역 변수가 된다. 감싸는 함수가 없으면 전역 변수가 된다.
- Function() 생성자의 사용은 eval()만큼이나 좋지 않은 방법이다. 코드가 문자열로 전달되어 평가되기 때문이다. 또한 따옴표를 이스케이프해야 하고 가독성을 높이기 위해 함수 본문을 들여쓰기하려면 별도로 신경 써야 하기 때문에 읽고 쓰기에 불편하다.
- 함수 선언문보다 함수 표현식을 선호하는 이유는, 함수 표현식을 사용하면 함수가 다른 객체들과 마찬가지로 객체의 일종이며 어떤 특별한 언어 구성요소가 아니라는 사실이 좀더 드러나기 때문이다.
함수 선언문에 익숙한데 요새는 함수 표현식으로 표현하려고 많이 한다
그 건, JSON이랑 형태도 비슷해서였는데
앞 장에서 객체 리터럴 표기법을 배우면서 더 열심히 써야겠다 싶었다
코드를 일관되게 작성할 수 있을 거 같다는 자신이 생긴다
유효범위와 호이스팅이 아직은 예상하는 거랑 결과가 다르게 나오는데
계속 호이스팅에 대해서 나와서 점점 이해가 갈려고 한다
단일 패턴을 사용해봤는데, 호이스팅 개념이 모호에서 적용 안 한 게 있는 데
그것도 다시 고쳐보면 될 거 같다! 시간 내서 꼭 확인해봐야겠다
728x90