JavaScript - 엄격모드 (use strict)

2022. 7. 15. 22:32개발자 블로깅/Question

모던 자바스크립트는 '클래스'와 모듈'이라 불리는 진일보한 구조를 제공한다.

이 둘을 사용하면 use strict가 자동으로 적용되어 따로 붙일 필요가 없다.

 

use stric없이 할당하기

// 참고: 이 예제에는 "use strict"가 없습니다.

num = 5; // 변수 'num'이 정의되어있지 않더라도, 단순 할당만으로 변수가 생성됩니다.

alert(num); // 5

use stric있이 할당하기

"use strict";

num = 5; // error: num is not defined

 

클래스

사용자가 직접 객체를 선언하고 객체를 멤버를 구성하여 사용할 수 있고 범위와 용도도 정해줄 수 있다. 

이렇게 만든 클래스는 그 용도와 목적에 맞게 상속을 통한 인스턴스화, 인터페이스 구현이 가능하다.

즉, 다른 객체에서 해당 클래스의 내부 멤버를 세부용도에 맞게 변경하여 사용할 수 있다.

외부 객체에서 접근가능한 클래스 명을 import 하여 사용할 수 있으며, 외부 객체에서 끌어다 쓰는 이 클래스 내부 멤버들은 클래스를 구현하는 동안에만 수명이 지속된다.

 

모듈

어느 개인이나 단체에 의해 이미 완성되어 있는 것을 사용자가 가지고온 후 그 모듈 객체와 객체 멤버를 끌어와서 사용합니다. 이러한 모듈은 클래스와 다르게 상속을 통한 인스턴스화, 인터페이스 구현이 불가능합니다. 즉, 다른 객체에서 해당 모듈의 내부 멤버를 변경하여 사용하지 못한다는 것입니다.

모듈의 내부 멤버에 프로그램 수명동안 기본적으로 접근이 가능합니다. 

 

클래스와 모듈의 차이점

용성에 가장 큰 차이가 존재

모듈은 보통 다운받은 파일을 프로그램에 포함시켜 놓고 자유롭게 사용하는 반면 클래스는 그 목적에 맞게 각 크로세스에서 상속하여 사용한다.

모듈은 내부 멤버를 변경하여 사용할 수 없지만 상속받은 클래스는 멤버를 자유롭게 변경할 수 있다.

 

 

 

JavaScript.Info 를 읽으며 모르는 단어는 바로 바로 구굴링!

그러다 보니 한 페이지 보는 것도 시간이 순삭!

처음이니까 그럴 수 있지~ 언젠간 나도 이해하는 속도가 빨라지는 날이 오겠지.

 

출처: https://alin-j-alin.tistory.com/20 [젤린의 기술 블로그:티스토리]