Recent Posts
Recent Comments
Archives
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 프로그래머스
- 스파르타코딩클럽
- useRouter
- js
- error
- 오블완
- 구글 로그인
- CORS
- 내일배움캠프
- 티스토리챌린지
- domain
- Next
- 자주 까먹는
- vscode
- deep dive
- nextjs
- 소셜 로그인
- 프로젝트 셋팅
- 코테
- 모던 자바스크립트
- 셋팅
- React
- array정적메서드
- vercel
- 초기셋팅
- git
- 코딩테스트
- 리터럴
- 코드카타
- 모던자바스크립트
- Today
- Total
파피루스
20장, _ strict mode 본문
오류 발생 가능성을 높이거나 최적화 문제를 일으킬 수 있는 코드에 대해 명시적 에러를 발생시킴으로서,
자바스크립트 문법을 좀더 엄격히 적용한 것이다.
유사한 역할로서 린트들을 사용하는데, 린트 도구는 제한 오류부터 코딩 컨벤션까지 설정 파일 형태로 정의할 수 있기에 조금 더 강력하다.
stric mode 적용하기
전역의 혹은 함수 몸체의 선두에 'use strict';를 추가한다.
'use strict';
function foo() {
x= 10; //ReferenceError : x is not diefined (stric mode가 아니면 에러가 나지 않음)
}
foo();
strict mode 적용 시, 뭐가 다른가요?
Reference Error
: 선언하지 않은 변수를 참조할 경우
function foo() {
x= 10; //ReferenceError : x is not diefined (stric mode가 아니면 에러가 나지 않음)
}
foo();
Syntax Error
1) delete 변수로 변수, 함수, 매개변수를 삭제 시
function foo() {
var x= 10;
delete x; // Syntax Error
}
foo();
2) 중복된 매개변수 이름 사용할 시
function foo() {
x= 10; // Syntax Error
}
foo();
3) with 문 사용 시
(function () {
with({x:1}) { // Syntax Error
console.log(x);
}
}());
일반함수의 this에 undefined가 binding 된다.
function foo() {
x= 10; //ReferenceError : x is not diefined (stric mode가 아니면 에러가 나지 않음)
}
foo();
인수를 재할당해도 arguments 객체에 반영되지 않는다.
(function (value) { // value 에는 "안녕"이 들어가있다.
value = 2; // value =2 로 재할당
console.log(arguments); // { 0: "안녕", length:1 }
}());
'Book > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글
22장, this (0) | 2024.05.29 |
---|---|
21장, 빌트인 객체 (0) | 2024.05.29 |
19장, 프로토 타입 (0) | 2024.05.17 |
18장, 함수와 일급 객체 (0) | 2024.05.09 |
17장, 생성자 함수에 의한 객체 생성 (0) | 2024.05.08 |