본문 바로가기

Web開発/JavaScript ES6

(6)
표현식과 문 - 값(value) 값은 식(표현식)이 평가되어 생성괸 결과를 말한다. 평가(evaluate)는 식(표현식)을 해석해 값을 생성 또는 참조하는 것이다. const foo = 10 + 20; 위 예의 경우 foo라는 변수에 10 + 20이 아닌, 10 + 20의 결과인 30이 할당된다. 10 + 20 이라는 표현식의 평가 결과인 30이 값이다. - 리터럴(literal) 사람이 이해할 수 있는 문자나 약속된 기호로 값을 생성하는 표기법이다. 리터럴에는 정수, 부동소수점, 2진수, 8진수, 16진수, string, boolean, null, undefined, object, array, function, 정규표현식 등의 다양한 data type이 존재한다. 자바스크립트 엔진은 코드가 실행되는 시점인 'run..
매니지드 언어와 언매니지드 언어 프로그래밍 언어는 매니지드 언어와 언매니지드 언어로 나뉘는데 c언어 같은 언매니지드 언어의 경우, 개발자가 명시적인 메모리할당 등을 수행할 수 있도록, malloc(), free() 등의 저수준 메모리제어 기능을 제공한다고 한다. 따라서 개발자의 역량에 따라 성능이 달라질 수 있다. 뛰어난 개발자는 최적화된 성능을 만들어 낼 수 있지만, 그렇지 않은 경우는 치명적 오류를 생산할 수도 있다. 반면에 매니지드 언어는 이러한 자유도를 낮추고, 개발자의 역량보다는, 언어차원에서 제공하는 기능으로써 메모리 관리를 담당한다. 상대적으로 일관화 된 성능과 생산성을 확보할 수 있는 반면, 성능상의 디메리트는 일정부분 감수해야할 수 있다. 매니지드언어와 언매니지드언어의 차이는 framework과 library의 차이와 ..
가비지 콜렉터 a라는 변수에 10이라는 값을 할당했다고 하자. a라는 변수가 선언될때 자동으로 할당되는 undefined는 10이라는 새로이 할당된 값이 있으므로 쓸모 없어졌다. 변수에 값이 할당될때, 기존 undefined가 지워지고 나서 10이라는 값이 해당 메모리를 차지하는게 아니라, 새로운 메모리 에 10이라는 값을 저장하고, a라는 식별자는 그 10이라는 값이 저장된 특정 메모리를 가리킨다. 그리고 a라는 변수에 20이라는 값을 재할당 한다면, 위와 마찬가지 프로세스로 a는 20이라는 값을 가리키게 되고, undefined와 10이 저장된 메모리는 쓸모없는 공간이 된다. 가비지 콜렉터는 주기적으로 메모리공간을 검사하여, 이런 쓸모없는 메모리를 해제한다. 자바스크립트는 가비지콜렉터를 내장하고 있으며, 가비지콜렉..
변수와 식별자 - 변수 변수(variable)는 값을 저장하기 위한 메모리 공간 혹은 그 공간을 식별하기 위해 붙인 이름이다. 값의 위치를 가리키는 상징적인 이름이다. Object나 Array와 같은 자료구조를 이용하면, 하나의 변수에 여러 값을 그룹화하여 저장할 수 있다. var foo = 'FOO'; 라고 변수를 선언하는 경우, foo는 변수명이고, FOO라는 문자열은 그 변수의 값이다. 할당은 변수에 값을 저장하는 것을 말하며, 참조는 변수에 저장된 값을 읽어들이는 것이다. 변수명은 컴퓨터를 위한 것이 아닌, 저장한 값의 위치를 사람이 식별하기 용이하도록 붙이는 상징적인 이름이다. 즉, 사람이 보고 어떤 값이 저장되었는지 알아야 한다. --------------------------------------- 자기만..
JS_ES6_1. var키워드와 let키워드 젠장. 참고서적 언급 등을 쓰기 위해 잠시 임시저장하고 새로글을 써서 발행했더니, 작성하던 임시저장이 날아갔다 ㅡㅡ;; 1. var 키워드 var 키워드는 변수 선언에 사용된다. 흔히 지역변수라고 부르는 로컬변수, 전역변수라고 부르는 글로벌변수로 구분한다. 로컬변수는 함수나 오브젝트를 스코프로 사용하기 위한 의도, 글로벌변수는 프로그램 전체에서 공용으로 사용하기 위한 의도로 선언되는 변수이다. one = 100; function get(){ one = 300; console.log("함수 :", one); } get(); console.log("글로벌 :", one); 여기서 one이라는 변수는 var를 사용하지 않았으므로 글로벌 변수이다. get()함수를 호출하게 되면, get()함수블록 안에 있는 o..
JavaScript ES6 포스팅 JavaScript ES6 내용에 대한 포스팅은 루비페이퍼에서 출간한 ECMAScript 6 책으로 공부하는 내용을 기록한다. 업무적인 필요성, 그리고 JQuery 에서 벗어나기 위해 ES6를 익일 필요성을 느끼고 있다. ES5까지는 함수작성을 위한 언어로의 역할만 하던 Javascript가 ES6에 들어서면서 객체지향언어로써의 비중이 커졌다고 한다. Node.js나 React.js를 사용하면서 이런 부분을 처음 접했고, 기존에 퍼블리셔로써 jQuery를 매우 많이 사용했는데, 이 라이브러리의 장점인 편리함에 젖어 jQuery적으로만 생각하고 있는 스스로를 발견했고, 프론트엔드로 넘어가는 부분에 있어서 많은 어려움을 느꼈다. 한국에서 프론트엔드라는 영역에 들어가기 위해서는 기본적으로 ES6는 필수라고 생..