본문 바로가기
반응형

Javascript14

[Javascript] Javascript의 확장 금지, 봉인, 동결 1. 확장 금지 확장 금지란, 객체에 더는 프로퍼티를 추가할 수 없게 차단하고 현재 프로퍼티는 있는 그대로 놔두고 싶을 때 Object.preventExtensions(..)를 호출한다. 여기서 비엄격 모드에서는 프로퍼티를 추가해도 조용히 실패하지만 엄격 모드에서는 TypeError가 난다. var exObject = { a : 2 }; Object.preventExtensions(exObject); exObject.b = 3; exObject.b; // undefined 2. 봉인 Object.seal(..) 함수는 봉인된 객체를 생성한다. 즉, 어떤 객체에 대해 Object.preventExtensions(..)를 실행하고 프로퍼티를 전부 configurable : false 처리한다. 결과적으로 더.. 2017. 8. 31.
[Javascript] Javascript 프로퍼티 서술자 (Getter/Setter) 1. Javascript의 프로퍼티 서술자 단순하게 말하면 데이터를 담아두는 Property (속성)이다. ES5부터 모든 프로퍼티는 프로퍼티 서술자 (Property Descriptor)로 표현된다. var exObject = { a : 2 }; Object.getOwnPropertyDescriptor(exObject, "a"); /* * { * value : 2, * writable : true, * enumerable : true, * configurable : true * } */ 위 예제를 보면 값 (value) 말고도 writable, enumerable, configurable의 세 가지 특성이 더 있다. 이렇게 프로퍼티 생성 시 프로퍼티 서술자에 담긴 기본 특성값을 확인 할 수 있는데, O.. 2017. 8. 31.
[Javascript] Javascript의 실행 컨텍스트와 스코프 1. 자바스크립트의 실행 컨텍스트 (Execution context) 기존 언어를 경험한 사람이라면, 콜 스택을 들어보았을 것이다. 이는 함수를 호출할 때 해당 함수의 호출 정보가 차곡차곡 쌓여있는 스택을 의미한다. 실행 컨텍스트는 콜 스택에 들어가는 실행 정보 하나와 비슷하다. ECMAScript에서는 실행 컨텍스트를 "실행 가능한 코드를 형상화하고 구분하는 추상적인 개념"으로 기술한다. 이를 콜 스택과 연관지어 정의하면, "실행 가능한 자바스크립트 코드 블록이 실행되는 환경"이라고 할 수 있다. ECMAScript에서는 실행 컨텍스트가 형성되는 경우를 세 가지로 규정하고 있는데 전역 코드, eval() 함수로 실행되는 코드, 함수 안의 코드를 실행할 경우이다. ECMAScript에서는 실행 컨텍스트의.. 2017. 8. 30.
[Javascript] 함수 호이스팅 (Function Hoisting) 함수 호이스팅 - 함수 선언문 방식과 함수 호이스팅 // 함수 선언문과 함수 호이스팅 add(2, 3); // 5 function add(x , y) { return x + y; } add(3, 4); // 7 위 add함수 호출 부분에서는 add()함수가 정의 되지 않았음에도 호출 하는 것이 가능하다. 이것은 함수 선언문 형태로 정의한 함수의 유효 범위는 코드의 맨 처음부터 시작한다는 것을 알 수 있다. 이것을 함수 호이스팅이라고 부른다. - 함수 표현식 방식과 함수 호이스팅 // 함수 표현식과 함수 호이스팅 add(2, 3); // Uncaught type error var add = function (x , y) { return x + y; }; add(3, 4); // 7 add()함수는 함수 표.. 2017. 8. 29.
[Javascript] 함수의 생성 Javascript 함수 생성 방법 - 함수 선언문 방식 - 함수 표현식 방식 - Function() 생성자 함수 1. 함수 선언문 방식 // add 함수 선언문 function add(x, y) { return x + y; } console.log(add(3,4)); // 7 2. 함수 표현식 방식 익명 함수 표현식 // add 함수 표현식 var add = function (x, y) { return x + y; }; var plus = add; console.log(add(3, 4)); // 7 console.log(plus(3, 4)); // 7 기명 함수 표현식 // add 함수 표현식 var add = function sum(x, y) { return x + y; }; console.log(a.. 2017. 8. 29.
반응형