loading
본문으로 바로가기

 

strict mode란?

strict mode는 ES5(ECMA Script 5)에 추가된 키워드입니다.

출현 배경으로, 자바스크립트는 꽤나 긴 시간동안 호환성 이슈없이 새로운 기능이 추가되며 발전해왔습니다. 하지만 자바스크립트 창시자들이 했던 실수나 불완전한 결과물이 언어에 묻혀있었습니다.

ES5(ECMA Script 5)가 등장하며 새롭게 개정되고 기능이 추가되었습니다. 그렇지만 하위 호환성 문제가 생길 수 있기 때문에, ES5는 기본 모드에서는 동작하지 않도록 설계되었습니다.

strict mode를 활성화시에만 동작하며, 그동안 자바스크립트가 묵인했던 불완전한 코드들의 에러 메세지를 발생시켰습니다.

 

// 'use strict';

function test() {
    x = 10;
}

test();
console.log(x); // 10

엄격 모드를 사용하지 않았을 때, 출력 10이 된다. 변수를 선언하지 않았지만, 코드 에러가 분명한 상황에도 이를 묵인하고 정상적인 코드와 같이 동작하는 것을 볼 수 있다.

 

'use strict';

function test() {
    x = 10;
}

test();
console.log(x); // ReferenceError: x is not defined

엄격 모드를 사용하였을 때, x가 정의되지 않았다는 에러를 확인할 수 있다. 이렇게 코드를 엄격하게 검사하게 되어, 사전에 잘못된 개발 방향을 방지할 수 있다.

 

TypeScript

타입스크립트는 태생적 한계가 있는 자바스크립트를 극복하고자 대체 언어로 탄생했다.

클래스 기반 객체지향 언어(Java, C++, C# 등)와 같이 정적 타이핑을 지원하며, ES6(ECMAScript 2015)의 클래스, 모듈 등과 ES7의 Decorator 등을 지원한다.

이로써 디버그와 테스트 공수가 증가하는 등의 여러 문제들을 줄일 수 있게 되었다.

 

장점

장점으로 변수를 선언과 함수의 매개변수 타입을 지정함으로써 에러를 방지한다.

let num: number = 123; // number type define
let str: string = "123"; // string type define
let bool: boolean = true; // boolean type define

//매개변수 type define
function sum(a: number, b: number) {
  return a + b;
}

sum('x', 'y');
// error TS2345: Argument of type '"x"' is not assignable to parameter of type 'number'.

 

 

 

 

The starting point for learning TypeScript

Find TypeScript starter projects: from Angular to React or Node.js and CLIs.

www.typescriptlang.org

 

Strict mode | PoiemaWeb

ES5부터 strict mode가 추가되었다. strict mode는 자바스크립트 언어 문법을 보다 엄격히 적용하여 기존에는 무시되던 오류를 발생시킬 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를

poiemaweb.com

 

 

TypeScript - Intro & Install | PoiemaWeb

TypeScript 또한 AltJS의 하나로써 자바스크립트(ES5)의 Superset(상위확장)이다. C#의 창시자인 덴마크 출신 소프트웨어 엔지니어 Anders Hejlsberg(아네르스 하일스베르)가 개발을 주도한 TypeScript는 Microsoft

poiemaweb.com