본문 바로가기

자바스크립트

(3)
자바스크립트 apply, call, bind 자바스크립트의 숫자, 배열, 문자열 등이 메서드를 가지고 있듯이 함수 역시 메서드를 가지고 있다. 그 중에 중요한 세 가지를 한 번 짚어보려고 한다. 함수의 실행 방법 자바스크립트에서 함수를 실행하는 방법에는 세 가지가 있다. 함수명 뒤에 ()를 붙이는 것, 그리고 함수의 기본 메서드인 call과 apply를 이용하는 것이다. 아래의 예시 코드를 보자. 12345678function greet (name) { return 'Hello ' + name;} console.log(greet('World'));console.log(greet.call(null, 'World'));console.log(greet.apply(null, ['World'])); Colored by Color Scriptercs call..
ES6의 주요 특징 정리 let과 const 전통적으로 자바스크립트는 함수스코프와 전역스코프만을 지원하여 변수의 생명주기 및 접근을 제어해왔다. 하지만 ES6에서부터는 블록스코프도 지원하게 되었다. 이를 가능하게 해주는 것이 let과 const이다.아래의 코드는 블록 스코프를 따르는 여타 언어에서는 에러를 발생시켰을 것이다. 하지만 함수스코프와 전역스코프를 따르는 자바스크립트에서는 문제없이 작동한다. 그러나 이는 많은 에러와 버그의 원인이었으며, let과 const가 도입된 이유이다. 123456if (false) { var x = 'hello';} console.log(x); // undefined cs 이번엔 let을 사용해보자. 123456if (false) { let x = 'hello';} console.log(x); ..
스코프와 호이스팅 스코프(Scope) 스코프란 단어를 직역하면 영역, 범위라는 뜻이다. 이를 프로그래밍 언어로 가져와 해석하면 변수와 매개변수의 유효범위를 뜻한다. 이를 통해 변수와 매개변수의 접근성과 생존 기간을 제어할 수 있다. 스코프의 종류는 함수 레벨 스코프와 블록 레벨 스코프 그리고 동적 스코프와 렉시컬 스코프로 구분할 수 있다. 함수 레벨 스코프 자바스크립트에서 var 키워드로 선언된 변수나, 함수 선언식으로 만들어진 함수는 함수 레벨 스코프를 갖는다. 즉, 함수 내부 전체에서 유효한 식별자가 된다. 아래의 코드는 아무런 문제 없이 blue를 출력한다. 5행에서 color를 참조할 때 같은 함수 내에서 선언된 color를 찾았기 때문에, 다시말해 var color는 함수 블록 전체에서 유효한 식별자가 되었다. ..