JavaScript (5) 썸네일형 리스트형 배열 고차 함수 (고계함수) 고차 함수(Higher order function)는 함수를 인자로 전달받거나 함수를 결과로 반환하는 함수를 말한다. 고차 함수는 인자로 받은 함수를 필요한 시점에 호출하거나 클로저를 생성하여 반환한다. 자바스크립트의 함수는 일급 객체 이므로 값처럼 인자로 전달, 반환 가능 const makeCounter = (predicate) => { let num = 0; //클로저 num의 상태를 유지한다. return () => num = predicate(num); //predicate는 num의 상태를 변화시킨다. } const increase = (n) => ++n const decrease = (n) => --n //makeCounter는 함수를 인수로 전달 받는다 그리고 클로저를 반환한다 const i.. [19-06-12] ES6 1. 삼항조건 연산자 (The Ternary Operator) let x = 20; const y = x > 10 ? "yes" : "no"; // "yes" 2. 간략계산법 (Short-circuit Evaluation) if (variable1 !== null || variable1 !== undefined || variable1 !== '') { let variable2 = variable1; } const variable2 = variable1 || 'new'; 경험 많은 개발자들은 그래서 비용이 높은 코드는 가능한 한 나중에 평가되도록 작성한다. OR연산자를 사용할 땐 true를 리턴할 가능성이 높은 코드를 첫 번째 조건으로 작성하고 AND연산자에선 false를 첫번째로. 인용: http://m.. [19-06-11] this, call, apply, bind this this는 일반적으로 OOP 개념에 밀접한 연관 객체의 프로퍼티인 함수에서 의미가 있습니다. 메서드를 호출하면 this는 호출한 메서드를 소유하는 객체가 됩니다. const o = { name: 'Kim', speak() { return this.name } } o.speak(); // "Kim" speak()를 호출하면 this는 o에 묶입니다. this는 함수를 어떻게 선언했느냐가 아니라 어떻게 호출했느냐에 따라 달라집니다. 즉, this가 o에 묶인 이유는 speak가 o의 프로퍼티여서가 아니라 o에서 speak 호출 했기 때문입니다. call 어디서 호출했는지 상관없이 this가 무엇인지 지정할 수 있습니다. 모든 함수에서 사용할 수 있으며 this를 특정 값으로 지정할 수 있습니다. c.. [19-06-10] 스코프, 호이스팅, 클로저 스코프 변수와 상수 매개변수가 언제 어디서 정의되는지 결정합니다. const f = (x) => x + 3; f(5) //8 x; // undefined x의 스코프(범위)가 함수 f라고 할 수 있다. 함수를 실제 호출할 때까지는 함수 바디의 정해진 매개변수(x)가 존재하지 않음을 상기. let과 const는 식별자를 블록 스코프에서 선언. var은 어디서 선언하든 호이스팅에 의해 전역 스코프가 된다. 호이스팅 1. 자바스크립트 엔진이 끌어올려 주는 것. 2. 변수의 사용 및 함수의 실행 코드가 선언보다 먼저 일어나도 정상 진행이 되도록 해주는 것 const funcc = () => { var a = 'a'; } 이 코드는 a가 호이스팅 되어 var a; const funcc = () => { a = '.. 자바스크립트 기초 원시타입(불변성) : 숫자, 문자열, 불리언, null, undefined, 심볼 null과 undefined null은 프로그래머에게 허용된 타입 undefined은 자바스크립트 자체에서 사용 객체(Object) 객체의 본질은 컨테이너입니다. 컨테이너 안의 내용물은 바뀔 수 있지만, 여전히 같은 컨테이너입니다. 객체의 콘텐츠는 프로퍼티 또는 멤버라고 부릅니다. 프로퍼티는 Key, Value쌍으로 구성됩니다. obj.color = "red"; 유효한 식별자를 써야 멤버 접근 연산자 . 을 사용 할 수 있습니다. (점 연산자) 유효한 식별자가 아니라면 계산된 멤버 연산자 [] 사용가능. 이전 1 다음