Languages 120

[HUFS/GnuVil] #2 데이터 타입, 연산자

데이터 타입 일반 문자열에서는 줄바꿈 등의 공백을 표현하려면 이스케이프 시퀀스를 사용해야 한다 var template = '\n\tHome\n'; var template = ` Home `; 템플릿 리터럴 내에서는 줄바꿈이나 공백이 있는 그대로 적용된다 undefined는 할당된 값이 아닌 자바스크립트 엔진이 변수를 초기화 할 때 사용하는 값이며 null은 변수에 값이 없다는 것을 의도적으로 명시(intentional absence)한다 // 심벌 값 생성 var key = Symbol('key'); console.log(typeof key); // symbol // 객체 생성 var obj = {}; // 이름이 충돌할 위험이 없는 유일무이한 값인 심벌을 프로퍼티 키로 사용한다. obj[key] = '..

[HUFS/GnuVil] #1 변수, 표현식과 문

변수 10 + 20 자바스크립트 엔진은 위 자바스크립트 코드를 계산(=평가, evaluation)하기위해 리터럴(literal)과 연산자(operator)의 의미를 알고 있어야 하며 표현식(expression)의 의미도 해석(=파싱, parsing)할 수 있어야 한다. 이 때 메모리를 사용해 피연산자를 기억하며, 연산은 CPU를 통해 이루어진다 각 셀은 고유의 메모리 주소를 가지며 모든 데이터를 2진수로 처리한다 재사용을 위해 메모리 주소로 직접 연산 결과에 접근하는 것은 시스템에 치명적인 오류를 발생시킬 수 있다. 따라서 변수(variable)를 활용해 하나의 값을 저장하기 위한 메모리 공간 확보 및 식별하기 위한 이름을 붙인다. 이는 컴파일러 또는 인터프리터에 의해 메모리 공간의 주소로 치환되어 실행..

[노마드코더] #5 Typescript Blockchain

TypeScript 프로젝트를 설정하고 블록체인 PoC(개념증명)를 객체지향으로 구현해보자! * CRA나 Next.js의 타입스크립트 템플릿 등을 사용한다면 직접 설정하는 경우는 많지 않다 Targets npm init -y 터미널에 위 명령어를 입력해 새로운 package.json 파일을 기본값으로 생성한다 npm install -D typescript 터미널에 위 명령어를 입력해 devDependencies에 typescript를 설치해준다 [package.json] { "name": "typechain", "version": "1.0.0", "description": "", "scripts": { "build": "tsc" }, "keywords": [], "author": "", "license"..

[노마드코더] #4 Classes and Interfaces

Classes TypeScript는 JavaScript 객체 지향 프로그래밍(OOP)을 위한 다양한 기능을 지원한다 class Player { constructor( private firstName: string, private lastName: string, public nickName: string ) {} } 이렇게 TS에서 클래스의 private/public 속성(property), 타입을 정의하는 것 만으로.. class Player { constructor(firstName, lastName, nickName) { this.firstName = firstName; this.lastName = lastName; this.nickName = nickName; } } JS 상에서 클래스의 prope..

[노마드코더] #3 Functions

Call Signatures type Add = { (a: number, b: number): number; } // type Add = (a: number, b: number) => number; const add: Add = (a, b) => a + b Call(=Function) Signature란 함수의 매개변수와 반환 값의 타입을 모두 type으로 미리 선언하는 것이다 * React에서 함수로 props를 보낼 때, 어떻게 작동할지 미리 설계 가능! Overloading Function(=Method) Overloading은 직접 작성하기보다 외부 패키지/라이브러리에 자주 보이는 형태로, 하나의 함수가 복수의 Call Signature를 가질 때 발생한다 type Add = { (a: numbe..

[노마드코더] #2 Overview of TypeScript

How TypeScript Works TypeScript가 제공하는 보호장치는 JavaScript로 변환되기 전에 작동한다! TypeScript Playground에서 전에 수행했던 코드들을 테스트해보자 TS Playground - An online editor for exploring TypeScript and JavaScript The Playground lets you write TypeScript or JavaScript online in a safe and sharable way. www.typescriptlang.org 이처럼 직접 타입을 명시하는 것이 Implicit Types, 할당된 값으로 타입 추론(Type Inference)하는 것이 Explicit Types인데, 타입 추론이 가능하..