잘 정리해보자

'use strict'; 사용 본문

javascript

'use strict'; 사용

토마토오이 2021. 4. 11. 20:59

‘use strict’

: 선언 한 경우 엄격한 스크립트가 적용되며, 실수 코딩들을 에러로 반환한다.

'use strict'를 선언하지 않고 진행한 실수코딩들은 에러로 인식되지 않으며 결과값은 undefined이나 문제없이 진행이 된다.

(함수 안에서 사용하거나 스크립트 전체에서 사용 할 수 있음.)

 

 

1. 함수 안에서 선언한 경우

- 함수 안에서 전역 변수 선언 시 에러로 처리 된다.

 

ex ) 

function test(){

‘use strict’;


str = “wow”;

console.log(str);

}

test();

> 실행결과 : Uncaught ReferenceError: str is not defined (에러로 처리됨)

 

 

 

- 함수의 파라미터 값이 중복일 경우 에러로 반환

 

ex ) 

function test(a,a,c){

‘use strict’;


return a+c;

}

> 실행결과 : Uncaught SyntaxError: Duplicate parameter name not allowed in this context

 

함수 선언과 동시에 에러 발생한다.

('use strict' 빼고 실행 할 경우 에러 처리가 안되며, 파라미터 중복이 계산에서는 뒤에 파라미터로 계산이 처리된다.)

 

 

 

- 이상한 변수 선언 후 호출 하면 에러로 반환된다.

 

ex )

function test(){

'use strict’; 



(22).sail = "home”; 

"with".you = "te”;

}


test();

> 실행결과 : Uncaught TypeError: Cannot create property 'sail' on number '22'

    at wow2 (<anonymous>:1:41)

    at <anonymous>:1:1

 

 


 

function test(){

(22).sail = "home”; 

"with".you = "te”;

}

test();

> 실행결과 : undefined

 

‘use strict’선언하지 않은 채로 진행 한 경우 에러로 처리되지 않고 진행이 된다.

함수 안에서 선언한 변수들을 console로 확인해도 undefined로 리턴 된다.

 

 

 

 


 

 

2. 전역으로 사용한 경우

 

- 8진수를 그냥 초기화 할 수 없고, 0o (숫자+영어)  를 붙이면 사용 할 수 있다.

 

ex ) 

'use strict’; 

var str8 = 0644;

 

> 실행결과 : Uncaught SyntaxError: Octal literals are not allowed in strict mode.

 


'use strict’; 

var str8 = 0o644;

console.log(str8);

> 실행결과 : 420

 

같은 숫자를 0o 붙이고 선언하니 제대로 변환되었다.

 

 

 

 

 

- 숫자를 계산 할 경우 0이 맨 앞자리에 있는 경우 에러로 반환

 

ex ) 

'use strict’; 

var  sum = 05 + 10 + 1;

> 실행결과 : Uncaught SyntaxError: Octal literals are not allowed in strict mode.

 

 

 

 

- Eval을 변수로 선언 할 수 없다.

 

ex ) 

'use strict’;

var eval = “w”;

> 실행결과 : Uncaught SyntaxError: Unexpected eval or arguments in strict mode

 

 

 

 

'javascript' 카테고리의 다른 글

Promise 쓰기 (비동기 통신 시 사용)  (0) 2021.04.13
let, const 선언  (0) 2021.04.11
Lint (린트)  (0) 2021.04.11
Babel (바벨)  (0) 2021.04.11
웹펙 - 로더 (loader)  (0) 2021.04.10
Comments