본문 바로가기

웹/JavaScript28

var let const, hoisting 기초 var es6 이하에서 변수를 선언할 수 있는 유일한 키워드 var! 1. 함수 레벨 스코프(Function-Level Scope) 함수 코드 블록만을 스코프로 인정한다. 전역 함수 외부에서 생성한 변수는 모두 전역변수이다. var x = 0; function f(){ var x = y = 1; // x는 지역변수로 선언됩니다. y는 아닙니다! } f(); console.log(x, y); // 0, 1 // x는 예상대로 전역이다 // y leaked outside of the function, though! 2. var 키워드 생략 var 키워드를 생략할 수 있다. 암묵적으로 전역변수를 선언한 것과 같다 3. 변수 중복 선언 가능 동일한 변수명을 중복으로 사용할 수 있다. 의도하지 않은 값이 변경될 .. 2020. 8. 25.
<script></script> async와 defer 의미, 실행 순서, 공통점, 차이점 async와 defer 의미, 실행 순서, 공통점, 차이점 자바스크립트는 parser blocking resource(파서 차단 리소스)이다. asynce, defer 모두 사용하지 않은 기본 모드로 브라우저는 문서를 파싱해 읽다가 자바스크립트를 만나면 진행하고 있었던 파싱을 멈추고 스크립트를 다운-> 파싱 -> 실행한 후 다시 문서를 파싱하게 된다. 스크립트는 인라인으로 선언된 경우, 파싱되고 실행되지만 외부 스크립트의 경우 다운로드한 후 파싱하고 실행된다. 기본모드를 사용할 경우 스크립트를 다운/파싱/실행할 때까지 문서(HTML) 파싱이 중단돼 화면 랜딩 시간이 더 소요된다. async 속성을 쓰면 문서를 파싱하는 동안 스크립트를 만나면 문서 파싱과 함께 스크립트를 다운받고 스크립트 다운이 완료되면 .. 2020. 7. 28.
ECMA Script 자바스크립트 버전과 표준 과 특징 ECMAScript 1990년대 Netscape는 Javascript를, MS사의 IE에서는 JScript를 사용했고 두 스크립트는 제각각이었다. 표준이 필요해 생긴 것이 ECMA. ECMA(European Computer Manufactures Association)의 약자로 ECMAScript는 자바스크립트 언어의 표준이다. ES1(1997), ES2(1998), ES3(1999) ECMA 초기 버전으로 1년에 한 번씩 업데이트되었으며 ES4의 경우 정치적인 이유로 폐기되어 없음 (ES4를 개발할 때 ES3.1을 작성하는 그룹과 ES4를 작성하는 그룹이 나뉘었고 그 사이에 갈등이 있었다. 결국 ES3.1이 이겨서 추후 ES5가 된다) 대부분 브라우져에서 지원 클로져 ES3에서 tre/catch 문법 .. 2020. 7. 8.
[JavaScript] "use strict " "use strict" 엄격모드라고 불리는 use strict는 문자열로 표현합니다. 사용한다면 반드시 스크립트 최상단에 위치시키거나 엄격하게 동작되어야 할 함수 최상단에 위치시킬 수 있습니다. 최상단에 위치해있지 않으면 동작하지 않아요. use strict? use strict 지시자를 쓰게 되면 스크립트 전체가 '모던'한 방식으로 동작합니다. 기존(옛날) JS는 암묵적으로 느슨한 모드(sloppy mode)로 처리했기 때문에 여러 많은 문제가 발생했습니다. 예를 들어보자. amount = 10; console.log(amount); "use strict" 가 없는 스크립트에서 콘솔로그에 찍히는 값은 amount 변수 앞에 var이나 let을 쓰지 않아도 변수와 값이 생성됩니다. "use strict".. 2020. 6. 15.