일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 컴포넌트
- 일기
- react
- 프로젝트
- 웹개발자
- 스터디
- 프리온보딩
- express
- 원티드
- 코로나19
- 웹개발
- 초보개발자
- 개발자
- node.js
- 컨테이젼
- IT
- 프론트엔드취준생
- 개발자일기
- Vue
- Prototype
- 프로그래머스
- Javascript
- 프론트엔드
- Developer
- 자바스크립트
- 리액트
- dev-maching
- 인턴쉽
- Strict Mode
- 전염병
- Today
- Total
프로그래밍밍
2020.02.01 Strict Mode (스트릭트 모드) 본문
Strict Mode(스트릭트 모드)
스트릭트가 엄격이라는 의미를 가지고 있다.
기존의 환경보다 더 엄격하게 바뀐다는 의미인데
이게 무슨 말이냐면
쉽게 말해서 보다 엄격하게 에러를 표시해주는것이다.
예를들면 변수 선언시 var,let,const를 안적고 변수선언을 하면 암묵적 전역 변수선언으로 인해 오류를 피해간다.
*암묵적 전역변수란?*
암묵적 전역 변수는 var,let,const를 안적을시 자동적으로 전역변수로 변하게 되어서 전역변수와 같아지는 자바스크립트의 기능을 말한다.
사실상 따지고보면 이건 앞에 변수의 타입을 안정해주고 적은것이고 전역변수로 자동적으로 변환되었을시
내가 의도하지 않은 오류를 범할수도 있다.
따라서 strict Mode를 하게되면 이런 세세한 문제들도 잡아낸다.
이 모드로 인해 꽤 안정적인 코딩을 할수있게된다.
스트릭트 모드에 대해서 더 자세히 알아보자.(헷갈릴수도 있을법한 것들만 모아왔다.)
1. 변수명을 안적고 변수를 만들수가 없다.
2. delete를 사용해서 변수,객체 등을 삭제할수 없다.
3. ReadOnly는 무조건 읽기전용(내용 수정 불가)
4. get() 함수 사용은 무조건 가져오기 기능만 사용가능 (내용 수정 불가)
5. eval()함수를 사용할때 문자열 안에 변수선언을 할시 해당 변수는 사용불가

이렇게 적을시 모든 함수 내에서 Strict Mode가 실행된다.
그리고 스크립트에서 Strict Mode가 실행되게 하고 싶은 경우엔
오른쪽 바벨로 변환된 코드를 보면 맨 위에 "use strict"가 써있는것처럼 사용하면 된다.
(ES6에서는 기본설정 자체가 Strict Mode)
엄격하게 모든 에러를 잡아서 보다 안정적인 코딩을 할수있게 만들어준다.
이 이야기를 들으면 모든곳에 strict mode를 사용해야만 할것 같다.
하지만 모든곳에 사용하면 오히려 복잡해질것이다.
항상 말하지만 적재적소에 사용해야 한다는게 중요!
보통 사용하게되면 즉시실행함수와 같이 필요한 부분에만 사용해야한다.
모든 함수에 다 strict mode를 적용하기에는 부담이 크고
즉시실행함수가 아닌 부분적으로 한다면 이 또한 strict mode와 non strict mode의 문제가 생길수있다.
한쪽에선 에러라고 하지만 다른 한쪽에서는 에러라고 하지 않는 이런 문제 말이다.
따라서 Strict Mode는 즉시실행함수와 같이 적재적소에 사용하자.
'Programming > JavaScript' 카테고리의 다른 글
2020.02.07 Ajax 예제 (0) | 2020.02.07 |
---|---|
2020.02.02 비동기식 처리모델 (0) | 2020.02.02 |
2020.01.31 프로토타입 (0) | 2020.01.31 |
2020.01.30 내부함수&재귀함수&콜백함수 (0) | 2020.01.30 |
2020.01.29 함수 - 즉시 실행함수 (0) | 2020.01.29 |