Dev/JavaScript
-
-
Function Declarations(함수선언) vs Function Expressions(함수표현)Dev/JavaScript 2014. 4. 9. 12:11
자바스크립트에서 함수(Function)란? 자바스크립트의 function은 Fisrt-Class-Object 로서 변수나 데이터 구조 안에 담을 수 있으며 인자로 전달할 수 있고 반환 값으로도 사용할 수 있으며 , 런타임에 생성할 수 도 있다. 함수와 익명함수자바스크립트에서 함수를 정의하는 방법은 일반적으로 연산자인 function을 이용해서 정의 하는데, 함수선언문(function declaration)과 함수표현식(function expression)으로 나눠진다. 아래는 일반적인 함수 선언식이다. 함수선언식으로 정의된 함수는 자바스크립트 인터프리터가 스크립트가 로딩되는 시점에 바로 초기화하고 이를 변수객체(variable object)에 저장하기 때문에 함수 선언의 위치와는 상관없이 소스 내 어느 ..
-
자바스크립트에서 함수는 first-class object다.Dev/JavaScript 2014. 4. 2. 11:35
자바스크립트를 공부하다보면 first-class object(또는 citizen)라는 정의를 종종 볼 수가 있다. 이 first-class object는 무엇인지 찾아봤다. http://en.wikipedia.org/wiki/First-class_citizenhttp://ko.wikipedia.org/wiki/%EC%9D%BC%EA%B8%89_%EA%B0%9D%EC%B2%B4 대충 정리하면 변수에 저장 할 수 있어야 한다.함수의 파라미터로 전달 할 수 있어야 한다.함수의 반환값으로 사용 할 수 있어야 한다. 자료 구조에 저장 할 수 있어야 한다. 위와 같은 조건들을 충족하는 객체를 first-class object라 한다. 그럼 자바에서 함수, 즉 메소드는 first-class object 일까? 자바의..
-
JavaScript에서 "strict mode"를 사용해야 하는 이유Dev/JavaScript 2014. 4. 1. 12:00
Strict Mode는 ECMAScript 5 버전에 있는 새로운 기능으로써, JavaScript 코드에 더 나은 오류 검사를 적용하고, 좀 더 많은 예외를 발생시킨다. Strict Mode를 사용하면 암시적으로 선언한 변수를 사용하거나 읽기 전용 속성에 값을 할당하거나 확장할 수 없는 개체에 속성을 추가할 수 없다. 예를 들면 전역 객체들에 접근 하려 하는 것을 방지하고 예외를 발생 시킨다거나 상대작으로 안전하지 않은 액션이 발생하는 것을 방지한다. Strict Mode 대한 추가 정보는 ECMAScript Language Specification, 5th edition 에서 확인 할 수 있다. 아래는 예제는 Strict Mode를 선언 하는 방법이다. "var"를 사용하지 않아 전역 객체에 접근 하려..
-
JavaScript 에서 var 사용이 중요한 이유Dev/JavaScript 2014. 3. 31. 11:16
JavaScript에는 암묵적 전역(implied globals)이라는 개념이 있다. 아무것도 선언하지 않더라도 전역 객체가 이미 선언 돼있다는 의미로 생각하면 된다. 그렇기 때문에 var를 사용하지 않고 변수를 선언하거나, 선언되지 않은 변수를 사용하면 지역 함수 내에 있더라도 전역 객체의 프로퍼티(property)로 생성된다. 아래 예제를 살펴보면 b, d는 전역 객체의 프로퍼티로서 함수 내에 있더라도 전역에 속하게 된다.