목록Development/javascript (4)
JS Dev Blog
클로저는 함수와 함수가 선언된 어휘적 환경의 조합이다. function init() { var name = "Mozilla"; // name은 init에 의해 생성된 지역 변수이다. function displayName() { // displayName() 은 내부 함수이며, 클로저다. alert(name); // 부모 함수에서 선언된 변수를 사용한다. } displayName(); } init(); displayName()은 자신만의 지역 변수가 없다. 그런데 함수 내부에서 외부 함수에 변수에 접근할 수 있기 때문에 displayName() 역시 부모 함수 init()에서 선언된 변수 name에 접근할 수 있다. 이는 어휘적 범위 지정(Lexical scoping)의 예이다. 변수가 어디에서 사용 가능..
배열 내장 고차함수중 대표적으로 filter, map, reduce가 있다. 배열 내장함수를 사용하면 for문이 가진 순회를 별다른 코드를 작성하지 않고도 사용할 수 있기 때문에 매우 유용하디. filter 모든 배열의 요소 중에서 특정 조건을 만족하는 요소를 걸러내는 메소드. const numbers = [1, 2, 3, 4, 5]; const result = numbers.filter((number) => number < 3); console.log(numbers); // [1, 2, 3, 4, 5]; console.log(result); // [1, 2] map 주어진 배열의 값들을 callback function을 통해 새로운 값으로 정의하고 신규 배열을 만들어 반환함 const numbers =..
프로그래밍 언어에서 특정언어의 일급 객체(first-class object)란 보통 다른 객체들에게 적용 가능한 연산을 모두 지원하는 객체를 말한다. 대표적인 특징으로는, 변수에 할당 할 수 있다. 다른 함수의 인자로 전달될 수 있다. 다른 함수의 결과로서 리턴될 수 있다. 자바스크립트에서는 함수를 일급객체로 다룬다. 즉 함수를 string, number, boolean ,array, object 처럼 다룰 수 있다는 것이다. 함수를 일급객체로 다루면 할 수 있는 일은? 대표적으로 고차함수와 콜백함수가 있다. 고차함수 함수를 인자로 받거나 함수를 결과로 리턴하는 함수 콜백함수 인자로 받는 함수를 말한다. //일반 함수 const func = function(a) { return console.log(a)..
호이스팅 자바스크립트 Parser가 함수 안에 있는 변수나 함수를 맨위로 '끌어올린다' 호이스팅은 선언된 위치에 관계없이 어디서든 함수를 사용할 수 있도록 한다. 코드가 실행되는 과정에서 함수 선언부를 코드의 최상단으로 끌어올리는 것처럼 보이게 함. 호이스팅 이유 자바스크립트의 변수 생성(Instantiation)과 초기화(Initialization)작업이 분리돼서 진행되기 때문이다. 호이스팅의 대상 var, 함수 선언문이 대상 (함수를 선언하기 전에 함수를 선언하면 코드의 구조를 엉성하게 만들 수 있기 떄문에 함수 표현식을 사용하는 것을 권장한다고 한다.) console.log(func1()); //함수 선언식이기 때문에 호이스팅 됨. 정상 실행. console.log(func2()); //var fu..