728x90

Programming 49

this 키워드

일반적으로 this는 객체의 프로퍼티인 함수에서 의미가 있다. this 값은 런타임에 결정된다. 즉 컨텍스트에 따라 달라진다. 기본적으로 this를 개발자 도구에서 실행하면 window 전역 객체를 참고하는 것을 볼 수 있다. this === window는 true이다. 함수에서 사용되는 this는 함수 호출한 방법에 따라 변경된다. const person = { name: 'june', say(){ return `name is ${this.name}` } } person.say(); //"name is june" this가 person의 프로퍼티여서가 아닌, person에서 say를 호출했기 때문에, this는 person를 나타낸다. call() call() 메소드는 주어진 this 값 및 각각 전달..

Programming 2021.05.30

익명함수와 즉시 실행 함수

함수 표현식 방식으로 정의한 함수는 함수명을 생략 가능하다. 아래는 기명 함수와 익명 함수다. // 기명 함수 표현식(named function expression) let sum = function sum(a, b) { return a * b; }; // 익명 함수 표현식(anonymous function expression) let sum = function(a, b) { return a * b; }; 저때 sum 변수는 할당된 함수를 가리키는 참조값을 저장하게 되어 호출된다. 또한 실행도 sum 변수를 사용해야 한다. let sum = function(a, b) { return a + b; }; let b = sum; 이렇게 되면 sum과 b는 동일한 익명 함수의 참조값을 갖는다. 즉시 실행 함수(..

함수와 매개변수

함수를 호출하면서 정보를 전달할 때는 함수 매개변수(argument, parameter)를 이용한다. 매개변수는 함수가 호출되기 전에는 존재하지 않는 다는 점만 제외하면, 일반젹인 변수나 마찬가지이다. function sum(a, b){ return a+b; } sum(1, 3); 함수가 호출 될 때 전달되는 a와 b의 실제 값은 argument 이고, 함수가 값을 받을 때 쓰는 변수를 parameter라 한다. function fx(x){ console.log(`함수 안 ${x}`); x = 3; console.log(`값 할당 ${x}`); } let x = 1; console.log(`호출 전 ${x} 값`); fx(x); console.log(`호출 후 ${x} 값`); 함수 안에서 x에 값을 할..

Programming 2021.05.24

Interface

인터페이스(Interface)는 Java나 C# 등 정적 타입 언어에서 이미 많이 쓰이는 개념으로 객체가 여러 가지 프로퍼티 혹은 메서드를 가질 것이라고 선언하는 것. // interface interface student { id: number; name: string; } let person1: student; person1 = {id: 1, name: 'june'}; person1은 student의 interface에 맞춰야 한다. 선택적 프로퍼티 인터페이스의 프로퍼티가 조건에 맞춰 존재하거나 없을 수 있을 경우에는, 프로퍼티 이름 끝에 ?을 붙여 사용한다. // interface interface student { id: number; name: string; score?: number; } 읽기..

Typescript 기본 타입

Typescript는 Javascript와 거의 동일한 데이터 타입을 지원하며, 변수명 뒤에 타입을 명시하는 것으로 선언 할 수 있다. let word: string = 'Hello World'; 명시된 타입에 맞지 않는 값을 할당하면, 컴파일 시 에러가 발생된다. let word: string = 50; // Type '50' is not assignable to type 'string'. 기본 타입 // boolean let isBool: boolean = false; // null let n: null = null; // undefined let u: undefined = undefined; // number let deci: number = 5; let hex: number = 0xf00d; le..

함수 호출 및 return

하나의 단위로 실행되는 문의 집합으로, 이름과 매개변수를 갖고 있고, 호출하여 코드 블록에 담긴 문들을 실행한다. // 함수 선언(function declaration) function helloWorld() { console.log('Hello World'); } 함수는 선언만 한다고 실행되지 않고, 호출을 해야 한다. 함수를 호출할때는 함수의 이름 다음 괄호를 통해 호출한다. helloWorld(); // 'Hello World' 출력 함수 내용에 return키워드를 사용하면, 함수를 즉시 종료하고 값을 반환한다. function helloWorld() { return 'Hello World'; } helloWorld() // "Hello World" return을 명시적으로 호출하지 않으면, 반환 ..

조건문

조건 분기에 따라 다른 state를 실행 if if(...) 문은 괄호 안에 있는 조건을 평가하고, 그 결과가 참(true)이면 블록이 실행된다. if(condition){ state } //예제 let i = 20; if(i === 20){ console.log('숫자는 20입니다.') } state가 단일이라면 생략 가능하나, 코드 가독성을 높이기 위해서는 블록 사용을 추천을 한다고 한다. if ... else if 문에 else를 통해 다른 분기를 처리할 수 있다. if문이 참이 되지 않고 거짓일 때 실행된다. let i = 25; if(i === 20){ console.log('숫자는 20입니다.'); } else { console.log('숫자가 20이 아닙니다.'); } if ... else ..

객체

원시 타입은 단 하나의 값만 나타내고 불변이지만, 객체는 이와 다르게 여러 가지 값이나 복잡한 값을 나타낼 수 있으며, 변할 수도 있다. 객체에도 중괄호, 즉 { }를 사용하는 리터럴 문법이 있으며, 중괄호 안에 객체의 콘텐츠로 키(key), 값(value)로 구성된 프로퍼티(property)를 추가 할 수 있으며, 키에는 문자형, 값엔 모든 자료형이 추가 될 수 있다. // 객체 생성자 문법 let person1 = new Object(); // 리터럴 문법 let person2 = { name: 'june', age: 20 }; 객체 프로퍼티 추가 let person4 = {}; person4.name = "a"; person4["working"] = true; // person4 // {name: ..

Programming 2021.05.17
728x90