반응형
엄격 모드가 적용되었는지 확인할 수있는 방법이 있습니까?
어쨌든 엄격 모드 'use strict'가 적용되었는지 확인하고 엄격 모드에 대해 다른 코드를 실행하고 비 엄격 모드에 대해 다른 코드를 실행하고 싶습니다. 같은 기능을 찾고isStrictMode();//boolean
this
전역 컨텍스트에서 호출 된 함수 내부가 전역 객체를 가리 키지 않는다는 사실을 사용하여 엄격 모드를 감지 할 수 있습니다.
var isStrict = (function() { return !this; })();
데모:
> echo '"use strict"; var isStrict = (function() { return !this; })(); console.log(isStrict);' | node
true
> echo 'var isStrict = (function() { return !this; })(); console.log(isStrict);' | node
false
저는 예외를 사용하지 않고 전역적인 것뿐만 아니라 어떤 상황에서도 작동하는 것을 선호합니다.
var mode = (eval("var __temp = null"), (typeof __temp === "undefined")) ?
"strict":
"non-strict";
엄격 모드 eval
에서는 외부 컨텍스트에 새 변수를 도입하지 않는다는 사실을 사용합니다 .
function isStrictMode() {
try{var o={p:1,p:2};}catch(E){return true;}
return false;
}
이미 답변을받은 것 같습니다. 하지만 이미 코드를 작성했습니다. 그래서 여기
네, this
있습니다 'undefined'
엄격 모드에있을 때 전역 메서드 내에서.
function isStrictMode() {
return (typeof this == 'undefined');
}
보다 우아한 방법 : "this"가 객체 인 경우 true로 변환
"use strict"
var strict = ( function () { return !!!this } ) ()
if ( strict ) {
console.log ( "strict mode enabled, strict is " + strict )
} else {
console.log ( "strict mode not defined, strict is " + strict )
}
또 다른 솔루션은 Strict 모드에서 선언 된 변수 eval
가 외부 범위에 노출되지 않는다는 사실을 활용할 수 있습니다.
function isStrict() {
var x=true;
eval("var x=false");
return x;
}
참고 URL : https://stackoverflow.com/questions/10480108/is-there-any-way-to-check-if-strict-mode-is-enforced
반응형
'programing tip' 카테고리의 다른 글
로컬 IIS를 통해 작동하도록 Windows 인증을 가져올 수 없습니다. (0) | 2020.11.17 |
---|---|
jQuery : 부모, 부모 ID를 얻습니까? (0) | 2020.11.17 |
ggplot2를 사용하여 축에 정수 값만 표시하는 방법 (0) | 2020.11.17 |
.net 코어에서 유효하지 않은 SSL 인증서 우회 (0) | 2020.11.17 |
여러 열에서 최소값을 선택하는 가장 좋은 방법은 무엇입니까? (0) | 2020.11.17 |