분류 전체보기 (180) 썸네일형 리스트형 [Javascript] - this this - 자바스크립트의 프로토타입 모델 자바스크립트에선 객체가 생성되면 새로운 객체 콘텐츠의 일부 혹은 전체를 가지는 프로토타입이 지정됩니다. const newObject = Object.create(oldObject); 객체는 속성만 저장하며, 메서드는 객체에 저장된 함수에 불과하고 프로토타입은 객체일 뿐입니다. 객체가 가지고 있지 않은 속성의 값을 얻으려고 하면 그 값은 undefined 입니다. 하지만 객체가 위의 newObject 처럼 프로토타입을 갖고 있는 경우 결과 값은 프로토타입의 속성 값이 됩니다. 이렇게 체인 형식으로 프로토타입이 더 이상 없을 때까지 반복됩니다. - 프로토타입을 사용하는 가장 큰 이유 중 하나는 메서드를 저장하는 공간으로 쓰기 위함입니다. 비슷한 객체들이 전부 비슷한.. [Javascript] - Exception Exception (예외) - 호출한 함수는 개발자가 예상하지 못한 방식으로 문제를 일으킬 수 있습니다. 프로그램에서 문제가 발생했을 때 다루는 가장 보편적인 방법은 예외 처리입니다. 예상하지 못한 일이 발생하면, 현재 하고 있는 일을 전부 멈추고 예외 핸들러가 프로그램이 무엇을 해야 할지 알려 줄 것입니다. - 문제가 생기면 throw 문을 통해 신호가 발생됩니다. throw new Error('critical error'); throw 'critical error'; 위 예시처럼 자바스크립트는 throw 에 어떤 값이든 허용합니다. throw 로는 Error 생성자로 만들어진 값을 던지는 것이 일반적이지만 필수는 아닙니다. try { ... } catch (e) { ... } try 문 내에서 예외가.. [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.. 이전 1 ··· 14 15 16 17 18 19 20 ··· 23 다음