strict mode strict 모드는 ES5(ECMA Script 5)에 추가된 키워드입니다.strict 모드는 자바스크립트가 묵인했던 에러들의 에러 메시지를 발생시킵니다. 엄격하게 문법 검사를 하겠다.. 로 이해하면 될 것 같습니다. 1. strict 모드 선언스크립트의 시작 혹은 함수의 시작 부분에 "use strict"(또는 'use strict')를 선언하면 strict 모드로 코드를 작성 할 수 있습니다. 스크립트에서 strict 선언 "use strict"; var v = "Hi! I'm a strict mode script!"; 함수에서 strict 선언function strict(){ // Function-level strict mode syntax 'use strict'; functi..
let ES6(ECMA Script 6)에 새롭게 추가된 블록 레벨 스코프 변수 선언 방법입니다. 1. 문법 let var1 [= value1] [, var2 [= value2]] [, ..., varN [= valueN]]; var1, var2, ..., varN변수 이름 value1, value2, ..., valueN변수의 초기 값 2. var과 let의 스코프 비교var은 함수 레벨 스코프를, let은 블록 레벨 스코프를 가집니다. ([자바스크립트] 유효범위(Scope)와 호이스팅(Hoisting) 참고) var function varTest() { if (true) { var x = 2; console.log(x); //2 } console.log(x); //2 } varTest(); if문 안..
Promise Promise 패턴은 ES6(ECMA Script 6)에 정식으로 포함되었습니다.비동기프로래밍을 할 때, 콜백이 중첩되는 경우를 흔히 볼 수 있습니다. 중첩된 콜백은 화면 오른쪽을 뚫고 나갈 듯이 확장이 되고, callback1(1, function () { callback2(2, function () { callback3(3, function () { callback4(4, function () { callback5(5, function() { console.log("콜백지옥...!"); }); }); }); }); }); 이러한 형태의 콜백지옥이 탄생하게 됩니다. Promise를 사용하여 콜백 지옥을 해결할 수 있습니다. Promise를 console.dir로 찍어본 결과는 밑에 그림과..
콜백함수(Callback function) 자바스크립트에서 함수는 객체(object) 입니다. MDS(Mozilla Developer Site)에서는 밑에와 같이 설명하고 있습니다. In JavaScript, functions are first-class objects, because they can have properties and methods just like any other object.What distinguishes them from other objects is that functions can be called. In brief, they are Function objects. 자바스크립트에서 함수는 프로퍼티와 메소드를 가질 수 있기 때문에 1급객체 입니다. 다른 객체와 구별되는 점은 ..
함수(Function)1. 함수 선언(Function declaration 혹은 Function statement)함수 선언(Function declaration)을 MDS에서 밑에와 같이 정의 하였습니다. 문법 function name([param,[, param,[..., param]]]) { [statements] } nameThe function name. paramThe name of an argument to be passed to the function. Maximum number of arguments varies in different engines. statementsThe statements which comprise the body of the function. 함수 선언 호이스팅(..
클러저(Closure) 1. 클로저(Closure)란? MDN(https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Closures) 에서는 아래와 같이 정의하고 있습니다. 클로저는 독립적인 (자유) 변수를 가르키는 함수이다. 또는, 클로저 안에 정의된 함수는 만들어진 환경을 '기억한다' 위의 말로는 이야기 되지 않습니다. 그래서 영문도 살펴 보았습니다. Closures are functions that refer to independent (free) variables (variables that are used locally, but defined in an enclosing scope).In other words, these functions 'r..
유효범위(Scope) 변수나 함수는 이름을 부여하여 의미를 갖게 됩니다. 만약 이름이 없다면, 변수나 함수는 그저 하나의 메모리 주소에 지나지 않습니다. 그래서 "이름:값"의 대응표를 만들어 사용합니다. 이 대응표의 이름을 가지고 값을 저장하고 가져와 사용합니다. 이 대응표의 충돌을 막기 위해 유효범위(Scope)라는 규칙을 만들어 사용하게 됩니다. 자바스크립트 또한 스코프 규칙을 가지고 있는데, 자바스크립트(ES6)는 함수 레벨, 블록 레벨의 렉시컬 스코프 규칙을 따릅니다. 1. 함수 레벨 스코프 (Function Level Scope)자바스크립트에서 var 키워드로 선언된 변수나, 함수 선언식으로 만들어진 함수는 함수 레벨 스코프를 갖습니다. 즉 함수 내부 전체에서 유효한 값을 가지게 됩니다. fun..
this 1. this 란?this는 일반적으로 메소드를 호출한 객체가 저장되어 있는 속성입니다. function MyClass () { this.property1 = "value1"; } MyClass.prototype.method1 = function() { console.log(this.property1); } var my1 = new MyClass(); my1.method1(); - 코드 1 - 메소드를 호출한 객체는 my1이 되며 method1은 메소드가 됩니다. method1()이 실행되면 메소드 내부에는 자바스크립트 엔진에 의해 this 속성이 생기게 됩니다. 바로 이 this에는 mthod1을 호출한 my1 객체가 저장됩니다. 결론을 먼저 말씀 드리자면, this가 만들어지는 경우,1. 일..
오버라이드 (Override) 1. 메서드 오버라이드란?메서드 오버라이드(override)는 자식 클래스에서 부모 클래스의 기능(method)를 재정의할 때 사용하는 기능입니다. 오버라이드는 두가지 경우에 주로 사용합니다.경우 1: 부모 클래스의 기능을 사용하지 않고 자식 클래스에서 구현한 기능을 사용하고 싶은 경우경우 2: 부모 클래스의 기능을 자식 클래스에서 확장하고 싶은 경우 2. 부모 클래스의 기능을 자식 클래스에서 재정의 MyParent.prototype.부모메서드 = function() {} MyChild.prototype.부모메서드 = function() {} - 코드 1-1 - 부모 클래스의 기능을 자식 클래스에서 재정의 하고 싶다면 코드 1-1처럼 부모 클래스의 재정의 하고자 하는 기능과..
call 함수 1. 구문 fun.call([thisObj[, arg[, arg2[, ...]]]]) 2. 매개 변수fun가져다쓸 메소드 thisObj (선택 사항입니다)현재 객체로 사용될 객체 arg1, arg2, argN (선택 사항입니다)메소드에 전달될 인수 목록 3. 설명call 메소드는 다른 객체 대신 메소드를 호출하는데 사용됩니다. 이 메서드를 사용하여 함수의 this 객체를 원래 컨텍스트에서 thisObj로 지정된 새객체로 변경할 수 있습니다. apply 함수1. 구문 fun.apply([thisObj[,argArray]]) 2. 매개 변수fun가져다쓸 메소드 thisObj (선택 사항입니다)현재 객체로 사용될 객체 argArray함수에 전달될 인수 집합 3. call과 apply의 차이cal..