Today I Learned ... javascript
🙋♂️ Reference Book
🙋 My Dev Blog
구문
과 의미
로 표현됨ES5
가 HTML5
와 함께 출현ES5 | ES6 |
---|---|
JSON, strict mode, 접근자 프로퍼티, 배열메서드 등 | let, const , 화살표함수, 템플릿 리터럴, 구조분해할당, 스프레드(...), Promise, 클래스, 모듈(import, export), 이터러블 등 |
기존에는 대부분의 로직이 웹서버에서 실행됨.
브라우저는 HTML과 CSS를 단순히 렌더링
하는 수준이였음.
AJAX: 자바스크립트로 서버-브라우저간 비동기 방식 데이터 교환 기능.
( XMLHttpRequest
)
이전에는 변경할 필요 없는곳까지 전체가 리렌더링 되어 비효율적.
Ajax의 등장으로, 서버로부터 필요한 데이터만 전송받아 변경될 부분만 렌더링 가능.
SPA
에 적합)CBD
방법론 기반. (Component Based Development)node
는 사용 못함)클래스, 상속, 정보은닉을 위한 키워드가 없어 객체지향언어가 아니라고 오해.
브라우저 | Node.js |
---|---|
브라우저 화면에 HTML,CSS,JS를 렌더링 하는 목적 | 브라우저 외부에서 자바스크립트 실행 환경을 제공하는 목적 |
브라우저는 DOM API를 기본적으로 제공하지만, 브라우저 외부에서는 DOM을 직접 다룰 필요가 없으므로 Node.js에서는 제공하지 않는다.
Node에서는 파일을 생성 및 수정 가능한 파일시스템
을 제공하지만, 브라우저에서는 함부로 사용자의 로컬 파일을 생성, 삭제 불가하다.
$ node -v
$ node index
node index
(node index.js)로 노드 환경에서 자바스크립트를 실행시킬 수 있다.
REPL
(Read Eval Print Loop)를 사용한다.자료구조
를 사용할수도 있다.let
, const
, var
키워드를 사용함.var
키워드는 블록레벨 스코프가 아닌 함수레벨 스코프를 지원함. (의도치않은 전역변수)키워드 (keyword)
자바스크립트 엔진이 수행할 동작을 규정한 일종의 명령.
var
로 선언시 선언단계와 초기화단계가 동시에 진횅됨. 평가
과정에서 모든 선언문을 먼저 실행함.console.log(name); // undefined
var name = 'yjin'; // 변수 선언 + 할당
console.log(name); // 'yjin'
managed language
,unmanaged language
로 나뉜다.var firstName;
class FirstName;