Koras02
Koras02코딩웹
Koras02
전체 방문자
오늘
어제
  • 분류 전체보기 (299)
    • 백엔드 (59)
      • nestjs (2)
      • Ruby (3)
      • PostgresQL (11)
      • MySQL (5)
      • Haskell (7)
      • Koa (3)
      • Java (3)
      • Python (5)
      • Rust (5)
      • MongoDB (2)
      • PHP (3)
      • Spring Boot (1)
      • redis (5)
      • deno (2)
    • 웹서버 (3)
      • nginx (1)
      • Apache (2)
      • Google Web Server (0)
    • 모바일개발 (5)
      • Figma (0)
      • React Native (2)
      • swift (0)
      • Flutter (3)
      • Kotlin (0)
    • 프론트 엔드 (158)
      • HTML (34)
      • CSS (7)
      • Javascript (35)
      • Angular (0)
      • Typescript (2)
      • React (58)
      • Vue (2)
      • GIT (6)
      • GraphQL (1)
      • Doker (4)
      • Go (8)
      • svelte (1)
      • gatsby (0)
    • etc. (47)
      • Notion (0)
      • TIL (24)
      • Algorithm (17)
      • Algorithm 개념 정리 (2)
      • Wiki (3)
      • Official document (1)
    • 웹개념 (12)
    • 변수정리 (1)
    • VSCode (2)
    • 포트폴리오 분석 (2)
      • React (2)
    • os (5)
      • 윈도우 (4)
      • Mac (0)
      • 가상머신 (0)
      • linux (1)
    • 응용프로그램언어 (2)
      • C (2)
      • C++ (0)
      • C# (0)
    • 블로그 운영관련 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
글쓰기

공지사항

  • [공지사항] 개발 이슈나 공식문서 업데이트 업로드 예정입니⋯

인기 글

태그

  • React
  • Haskell
  • javascript
  • PostgreSQL
  • 하스켈
  • 알고리즘
  • Rust
  • 문자열
  • CSS
  • go
  • html
  • 데이터 타입
  • redis
  • Flutter
  • Java
  • 프로그래머스
  • html5
  • mysql
  • Til
  • koa

티스토리

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
Koras02

Koras02코딩웹

[JS] JS와 TS의 차이점
프론트 엔드/Javascript

[JS] JS와 TS의 차이점

2022. 1. 20. 10:01
728x90

Javascript vs Typescript

  • TypeScript는 Javascript의 기반의 언어
  • Javascript는 클라이언트 측 스크립트 언어 Typescript는 객체 지향 컴파일 언어
  • 객체 지향 프로그래밍 패러다임은 데이터 추상화에 중심
    - 객체와 클래스라는 두 주요 개념을 기반으로 한다.

Javascript

  • 웹 개발에 주로 사용되는 언어
  • 웹 페이지를 대화식으로 만드는 프로그래밍 언어
  • 폼 유효성 검사, 애니메이션 적용 및 이벤트 생성을 수행하는 역할
  • 클라이언트 측 스크립트 언어
      - 사용자가 웹 브라우저를 열고 웹페이지를 요청할 시 해당 요청이 웹 서버로 이동한다.
  • 멀티 스레딩, 멀티 프로세싱 기능이 없음

Typescript

  • Javascript의 상위 집합으로 Javascript의 모든 기능이 있다.
  • TypeScript 컴파일러를 사용해 ts(Typescript)파일을 js(Javascript)파일로 변환, 쉽게 통합
  • 정적 유형 검사를 제공
  • 클래스 기반 객체를 만들수 있음 
  • 클래스 기반이므로 객체 지향 프로그래밍 언어로 상속, 캡슐화 및 생성자를 지원할 수 있다.

Typescript 예시 코드

  • 자바스크립트
function sum(a,b) {
  // 정적 타입을 지원하지 않으므로 타입의 반환값을 리턴해주어야 한다.
    return a + b;
}
  • 타입스크립트
function sum(a:number, b: number) {
   return a + b;
}

// 정적 타입을 지원, 컴파일 단계에서 요류 포착에 장점 => 코드의 가독성을 높임
class Person {
   private name: string;
   
   constructor(name: string) {
     this.name = name;
   }
}
//위의 타입스크립트를 트랜스파일링하면 다음과 같이 자바스크립트 파일이 생성됨
var Person = /** @class */ (function () {
    function Person(name) {
        this.name = name;
    }
    Person.prototype.sayHello = function () {
        return "Hello, " + this.name;
    };
    return Person;
}());
var person = new Person('Lee');
console.log(person.sayHello());
  • 정적 타입
let foo:string = "hellow" // 타입스크립트
let foo = "hello" // 자바스크립트

/ 함수선언식 타입스크립트
function multiply1(x: number, y: number): number {
  return x * y;
}

//함수 선언식 자바스크립트
function multiply1(x, y) {
  return x * y;
}

// 함수표현식 타입스크립트
const multiply2 = (x: number, y: number): number => x * y;

// 함수표현식 자바스크립트
const multiply2 = (x, y) => x * y;

//boolean
let isBoolean: boolean = false;
//null
let isNull: null = null;
//undefined 
let isUndefined:undefined = undefined;
// array
let list: any[] = [1,2,"3",false]
let list2: number[] = [2,3,4]
let list3: Array<number> = [1,2,3]

//tuple
let tuple : [string, number]
tuple = ["hello",10]

//enum : 열거형은 숫자값 집합에 이름을 지정한 것
enum Color1 {Red,Green,Blue}
let c1: Color1 = Color1.Green
console.log(c1) //1


//any 타입추론을 할 수 없거나 타입 체크가 필요없는 변수에 사용
let isAny: any = 5
isAny ="string:
isAny = false

//void : 일반적으로 함수에 반환값이 없을 경우
function isUser():void {
	console.log("hello")
}

//never : 결코 발생하지 않은 값
function infiniteLoop(): never {
	while(true){}
}

기타 

  • 타입을 정의할때는 소문자, 대문자를 구별해야함
  • 타입 선언을 생략하면 동적으로 타입이 결정 => 타입 추론
  • 타입 선언 생략 + 값 할당 x => any 타입
var foo;

console.log(typeof foo);  // undefined

foo = null;
console.log(typeof foo);  // object

foo = {};
console.log(typeof foo);  // object

foo = 3;
console.log(typeof foo);  // number

foo = 3.14;
console.log(typeof foo);  // number

foo = "Hi there";
console.log(typeof foo);  // string

foo = true;
console.log(typeof foo);  // boolean
let foo; // let foo: any와 동치

foo = 'Hello';
console.log(typeof foo); // string

foo = true;
console.log(typeof foo); // boolean

결론 

타입스크립트는 Javascript를 기반으로 한 언어이며 Javascript는 클라이언트 측 스크립팅 언어

Typescript는 객체 지향 컴파일 언어이다.

 

Javascript에서는 주로 웹개발에 사용되고 페이지를 대화식으로 만드는 프로그래밍 언어이다.

Typescript는 정적 유형 검사를 제공하고, 클래스 기반으로 객체를 만들 수 있다.

 

참고 자료

 

자바스크립트와 타입스크립트 차이점

JavaScript와 TypeScript TypeScript는 JavaScript 기반의 언어 JavaScript는 클라이언트 측 스크립팅 언어 TypeScript는 객체 지향 컴파일 언어 객체 지향 프로그래밍 패러다임은 데이터 추상화에 중심 객체와 클

velog.io

 

Javascript와 Typescript의 차이점

JavaScript와 TypeScript TypeScript는 JavaScript 기반의 언어 JavaScript는 클라이언트 측 스크립팅 언어 TypeScript는 객체 지향 컴파일 언어 객체 지향 프로그래밍 패러다임은 데이터 추상화에 중심 - 객체와..

yjym33.tistory.com

 

'프론트 엔드 > Javascript' 카테고리의 다른 글

[Javascript] 자바스크립트: '==' 와 '==='는 다르다!  (0) 2022.01.20
[프로그래머스 코딩테스트] 문자열 다루기 기본  (0) 2022.01.19
[javascript] map,filter,every 함수  (0) 2022.01.18
    '프론트 엔드/Javascript' 카테고리의 다른 글
    • [Javascript] Javsacript ES6 주요 특징
    • [Javascript] 자바스크립트: '==' 와 '==='는 다르다!
    • [프로그래머스 코딩테스트] 문자열 다루기 기본
    • [javascript] map,filter,every 함수
    Koras02
    Koras02
    현재 사용중인 언어 - next-js,react,vue, typescript

    티스토리툴바