Backend/Javascript (35) 썸네일형 리스트형 [Javascript] - Generator Generator (제너레이터) - 자바스크립트는 ES6부터 제너레이터 기능을 도입했습니다. // 제너레이터 기본적인 문법 function* counter() { console.info('counter 1'); yield 1; // 첫번째 next 호출 시 여기까지 실행 console.info('counter 2'); yield 2; // 두번째 next 호출 시 여기까지 실행 console.info('counter 3'); // 세번째 next 호출 시 여기까지 실행 } const c = counter(); console.info(c.next()); // counter 1 // { value: 1, done: false } console.info(c.next()); // counter 2 // { va.. [Javascript] - Function Function (함수) - function 연산자는 함수 객체를 만듭니다. function 연산자는 매개변수 목록과 문장 블록으로 구성된 함수 몸체를 전달받습니다. 매개변수 각각의 이름 뒤에는 = 부호와 표현식이 올 수 있고, 인자로 전달되는 값이 undefined 라면 = 다음의 표현식 값이 초기와에 사용됩니다. function make_set(array, value = true) { // value 에 전달된 값이 undefined 라면 true 로 초기화 ... } 함수 객체는 인자 목록과 함께 호출되는데 인자 목록에는 표현식이 없을 수도 있고 한 개 이상의 표현식이 있을 수도 있으며, 각각은 쉼표로 구분됩니다. 각 표현식은 계산된 뒤 함수의 매개변수에 지정됩니다. 매개변수보다 긴 인자들은 함수에.. [Javascript] - Statement Statement (문장) - 프로그래밍 언어는 표현 언어와 문장 언어로 나눌 수 있습니다. 문장 언어는 문장과 표현식을 갖고 있지만, 표현 언어는 표현식만 갖고 있습니다. - 선언문 자바스크립트에는 모듈이나 함수 내에서 변수를 선언할 수 있는 세 가지 문장 (let, function, const) 이 있습니다. let 문은 현재 스코프에 새로운 변수를 선언합니다. 모든 블록 (중괄호로 둘러쌓인 문장의 집합) 은 그만의 스코프를 생성합니다. 해당 스코프에 선언된 변수는 바깥쪽 스코프에서는 보이지 않습니다. let 문은 초기화 없이 변수를 선언할 수 있으며, 그럴 경우 undefined 로 값이 지정됩니다. let a = { my: 1 }; let { my } = a; // my = 1 let b = [1.. [Javascript] - Bottom value Bottom Value (빈 값) - 빈 값은 재귀적 데이터 구조의 긑을 가리키거나 값이 없음을 뜻하는 특수한 값입니다. 프로그래밍 언어에서 빈 값은 nil, none, nothing, null 과 같은 이름을 가집니다. - 자바스크립트는 두 개의 빈 값, null 과 undefined 를 갖고 있습니다. 자바스크립트 객체에선 오로지 null 과 undefined 만이 빈 값이며 이들 값에서 속성을 읽어오려고 하면 예외가 발생합니다. null 과 undefined 는 같지 않습니다. 둘은 비슷하지만, 어떤 경우에는 서로 다르게 동작합니다. 이는 헷갈릴 여지가 있다는 말이며, 둘 중 하나만 사용한다면 더 좋은 프로그램이 될 것입니다. 그래서 null 을 최소한으로 사용하고, undefined 를 주로 사용.. [Javascript] - String String (문자열) - 문자열은 0 에서 65535 사이의 크기를 가지는 부호가 없는 16비트 정수로 이루어진 불변 배열입니다. const test_array = [99, 111, 114, 110]; const test_string = String.fromCharCode(...test_array); test_string.charCodeAt(0) === 99 // true test_string.length // 4 typeof test_string // "string" 문자열을 String.fromCharCode 함수로 만들 수도 있는데, 이 함수는 임의 개수의 숫자들을 인자로 받습니다. 문자열 요소는 charCodeAt 함수로 접근할 수 있습니다. 문자열은 항상 동결된 상태이며, 배열과 마찬가지로 l.. [Javascript] - Object Object (객체) - 자바스크립트는 null 과 undefined 를 제와한 모든 것을 객체로 취급합니다. - 객체는 자바스크립트의 기본 데이터 구조입니다. 객체는 속성을 갖고 있으며, 각 속성에는 이름과 값이 있습니다. 이름은 문자열이고 값은 어떤 자료형이든 될 수 있습니다. - 객체 리터럴을 사용해 새로운 객체를 만들 수 있습니다. - 객체 리터럴의 범위는 중괄호 ({}) 로 결정됩니다. 괄호 안쪽에 0개 이상의 속성을 콤마로 구분하여 나열 가능합니다. let bar = 'abcd'; let test_object = { "0/0": 0, foo: bar, bar, test_method() { return 'test'; } }; console.info(test_object.foo === test_o.. [Javascript] - Array Array (배열) - 배열은 연속적인 메모리로 구성되고, 같은 크기의 배열 요소로 나눠지며, 각 요소는 정수 색인과 연결되어 빠른 접근이 가능합니다. - 자바스크립트는 처음 배포 당시 배열을 포함시키지 못했습니다. 자바스크립트의 객체가 워낙 강력해서 배열이 빠졌다는 사실을 늦게 깨달았으며, 성능 문제만 무시한다면 객체는 배열이 할 수 있는 모든 것을 할 수 있습니다. - 자바스크립트의 배열은 진짜 객체이나 다음의 측면에서 객체와 살짝 다릅니다. 배열은 length 속성을 갖고 있습니다. 배열의 length 는 배열이 담고 있는 요소의 개수가 아닌, 가장 큰 색인보다 1 큰 값을 나타냅니다. 예를 들어 배열에 요소가 네 개 있고 마지막 요소의 색인이 10 이라면 length 는 11 입니다. 배열은 Ob.. [Javascript] - Boolean Boolean Type (불 타입) - 불 타입은 true, false 만 가질 수 있다. - true, false 에 대해 typeof 연산자는 "boolean" 을 반환합니다. 관계 연산자 === 같음 !== 같지 않음 = 보다 크거나 같음 - 관계 연산자에서 몇가지 특이 케이스 undefined null // false undefined === null // false NaN === NaN // false NaN !== NaN // true "11" < "2" // true "2" < 5 // true 5 < "11" // true - 값이 NaN 인지를 확인하려면 반드시 Number.isNaN(x) 을 사용해야 한다. - 반복문의 종료 조건으로 =.. 이전 1 2 3 4 5 다음