일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 유연성
- 조깅
- 아이들이 좋아하는
- K 디지털 크레딧
- 무궁화분식
- 근력
- 바이러스
- TypeORM
- 막창맛집
- 탄수화물
- 서구맛집
- 청라맛집
- 송도커낼워크
- 부평파스타맛집
- 달리기
- 근지구력
- 마라탕맛집
- 심박수
- HTML
- SementicWeb
- 심폐지구력
- SementicTags
- 걷기
- 인천맛집
- 칼국수맛집
- 시맨틱태그
- 코로나19
- 에너지원
- 비전공자개발자이야기
- 다이어트
- Today
- Total
Feel It First
인사이드 자바스크립트(1) 본문
자바스크립트란?
자바스크립트의 핵심 개념
자바스크립트와 객체지향 프로그래밍
자바스크립트와 함수형 프로그래밍
자바스크립트의 단점
새로 구입한 자바스크립트 입문서!
책이 너무 두껍지도 않고, 실습 위주의 책보다는 개념 하나하나를 이해하고 적용하는 게 나의 공부 방식과 맞는 거 같다는 생각이 들어서 구매하였다.
자바스크립트란?
자바스크립트는 웹 브라우저에서 동작하는 스크립트 언어이다.
초창기 자바스크립트는 웹 페이지 제작에 있어서 보조적인 기능을 수행하기 위한 용도로써 사용했으며, 대부분의 로직은 주로 웹 서버에서 실행되었고, 클라이언트인 웹 브라우저에서는 서버로부터 받은 HTML과 CSS, 데이터로 렌더링을 해주는 수준이었다.
이후 발전을 거듭하여 현재는 더욱 많은 영역에서 사용되고 있다.
특히, Node.js의 등장으로 자바스크립트를 이용한 서버 개발이 활발해지면서 더욱 많은 개발자가 자바스크립트를 사용하게 되었다.
하지만, 이러한 세계적인 추세와는 달리 한국에서는 자바스크립트에 대한 관심이 외국에 비해 다소 떨어지는 것으로 보인다.
자바스크립트의 활용 범위 : 웹 개발, 서버 개발, 애플리케이션 개발 등
자바스크립트의 핵심 개념
객체
자바스크립트의 거의 모든 것은 객체이다.
기본 데이터 타입인 boolean, number, string, 그리고 null, undefined 이를 제외한 나머지는 모두 객체이다.
세 가지 기본 데이터 타입은 모두 객체처럼 다룰 수도 있다.
사실상 null, undefined를 제외한 모든 것을 객체로 다룰 수 있다는 뜻이다.
함수
자바스크립트에서는 함수도 객체로 취급한다. 하지만, 일반적인 객체보다 조금 더 많은 기능이 있는 객체라고 할 수 있다.
이는 함수가 일급 객체(First class object)로 다뤄지기 때문이다.
프로토타입
모든 객체는 숨겨진 링크(Link)인 프로토타입(Prototype)을 가진다.
이 링크는 해당 객체를 생성한 생성자의 프로토타입 객체를 가리킨다.
실행 컨텍스트와 클로저
자바스크립트는 자신만의 독특한 과정으로 실행 컨텍스트를 만들고 그 안에서 실행이 이루어진다.
이 실행 컨텍스트는 자신만의 유효 범위(Scope)를 갖는데, 이 과정에서 클로저를 구현할 수 있다.
자바스크립트와 객체지향 프로그래밍
자바스크립트는 클래스를 지원하지 않지만 객체지향 프로그래밍이 가능하다.
프로토타입 체인과 클로저로 객체지향 프로그래밍에서 제시하는 상속, 캡슐화, 정보 은닉 등의 개념을 소화할 수 있다.
자바스크립트와 함수형 프로그래밍
자바스크립트는 함수형 프로그래밍이 가능하다.
함수형 프로그래밍은 높은 수준의 모듈화를 가능케 하는 매우 효율적인 프로그래밍 방법이다.
주요 특성인 일급 객체로서의 함수 특성과 클로저를 활용하여 이를 가능케 한다.
자바스크립트의 단점
자바스크립트는 굉장히 유연한 언어이고 뛰어난 표현력을 가지고 있다.
하지만 이러한 특성 때문에 종종 디버깅에 어려움을 겪기도 한다. 특히, 느슨한 타입 체크는 개발자에게 타입 체크에 대한 자유를 주지만,
컴파일 타임에서 잡지 못하는 오류는 고스란히 런타임 오류로 발견된다.
'IT' 카테고리의 다른 글
자바스크립트 참조 타입(객체 타입) (0) | 2022.07.09 |
---|---|
자바스크립트 기본 타입 (0) | 2022.07.09 |
타이머 사용하기_로또 추첨기(JavaScript) (0) | 2022.07.07 |
숫자 야구 게임만들기(JavaScript) (0) | 2022.07.07 |
[Let's Get IT 자바스크립트 프로그래밍] 3장 DOM 객체 다루기 - 끝말잇기 게임(1) (0) | 2022.06.27 |