From 86792571ae1a21a1e4bf526747d6dd1c2636d167 Mon Sep 17 00:00:00 2001 From: alattalatta Date: Sat, 14 Aug 2021 15:57:42 +0900 Subject: Clean up JS reference documents (#1818) * Clean up JavaScript references HTML code - Remove inline styles - Remove elements - Remove title attribute * Remove sup/sub from JavaScript reference * Remove name attrs from JavaScript reference * Remove legacy browser compat elements * Remove duplicate browser-compat key --- files/ko/web/javascript/reference/strict_mode/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'files/ko/web/javascript/reference/strict_mode/index.html') diff --git a/files/ko/web/javascript/reference/strict_mode/index.html b/files/ko/web/javascript/reference/strict_mode/index.html index 031985846d..90e1c5709c 100644 --- a/files/ko/web/javascript/reference/strict_mode/index.html +++ b/files/ko/web/javascript/reference/strict_mode/index.html @@ -171,7 +171,7 @@ with (obj) // !!! 구문 에러

이름이 짧은 변수에 객체를 할당한 후, 변수에 해당하는 프로퍼티에 접근하는 간단한 대안은 with 를 대체할 준비가 되었습니다.

-

둘째로, 엄격모드 코드의 eval 은 새로운 변수를 주위 스코프에 추가하지 않습니다. 일반적인 코드에서 eval("var x;") 는 변수 x 를 주위 함수나 전역 스코프에 추가합니다. 이는, 일반적으로 eval 호출을 포함하는 함수에서 인수나 지역 변수를 참조하지 않는 모든 이름은 런타임에 특정 정의에 반드시 매핑되어야 함을 의미합니다(eval 이 외부 변수를 숨기는 새로운 변수를 추가했기 때문입니다). 엄격모드에서 eval 은 evaluated 된 코드에서만 변수를 생성하므로, 외부 변수나 일부 로컬 변수에 참조하는지에 영향을 주지 않습니다.

+

둘째로, 엄격모드 코드의 eval 은 새로운 변수를 주위 스코프에 추가하지 않습니다. 일반적인 코드에서 eval("var x;") 는 변수 x 를 주위 함수나 전역 스코프에 추가합니다. 이는, 일반적으로 eval 호출을 포함하는 함수에서 인수나 지역 변수를 참조하지 않는 모든 이름은 런타임에 특정 정의에 반드시 매핑되어야 함을 의미합니다(eval 이 외부 변수를 숨기는 새로운 변수를 추가했기 때문입니다). 엄격모드에서 eval 은 evaluated 된 코드에서만 변수를 생성하므로, 외부 변수나 일부 로컬 변수에 참조하는지에 영향을 주지 않습니다.

var x = 17;
 var evalX = eval("'use strict'; var x = 42; x");
@@ -268,7 +268,7 @@ console.assert(fun.bind(true)() === true);
 
 

즉, 브라우저에서 엄격모드의 함수내 에서는 더 이상 window 객체를  this 를 통해 참조할 수 없습니다.

-

둘째로, 엄격모드에서는 ECMAScript의 일반적으로 구현된 확장을 통해 자바스크립트 스택을 "걷는"것이 불가능합니다. 이러한 일반적인 확장 코드는,  함수 fun 이 호출되는 중간에, fun.caller 는 가장 최근에 fun 을 호출한 함수이고 fun.arguments 는 fun을 호출하기 위한   입니다. "권한있는"함수와 (잠재적으로 보안되지 않은) 인수에 접근을 허용하기때문에 두가지 확장 모두 자바스크립트의 "보안" 문제가 됩니다. fun 이 엄격모드인경우, both fun.caller 와 fun.arguments 모두 설정 또는 검색될때 삭제 불가능한 속성이 됩니다.

+

둘째로, 엄격모드에서는 ECMAScript의 일반적으로 구현된 확장을 통해 자바스크립트 스택을 "걷는"것이 불가능합니다. 이러한 일반적인 확장 코드는,  함수 fun 이 호출되는 중간에, fun.caller 는 가장 최근에 fun 을 호출한 함수이고 fun.arguments 는 fun을 호출하기 위한 인수입니다. "권한있는"함수와 (잠재적으로 보안되지 않은) 인수에 접근을 허용하기때문에 두가지 확장 모두 자바스크립트의 "보안" 문제가 됩니다. fun 이 엄격모드인경우, both fun.caller 와 fun.arguments 모두 설정 또는 검색될때 삭제 불가능한 속성이 됩니다.

function restricted()
 {
@@ -340,7 +340,7 @@ function baz(){ // kosher
 
 

브라우저에서의 엄격 모드

-

현재 주류의 브라우저들은 엄격 모드를 지원하고 있습니다. 하지만, 아직도 현실에서 사용되는 수 많은 브라우저의 버전들은 엄격 모드를 부분적으로만 지원하거나(Browser versions used in the wild that only have partial support for strict mode), 아예 지원을 하지 않고 있기 때문에, 맹목적으로 여기에 의지할 수는 없습니다. (예를 들면, Internet Explorer 10 버전 이하!) 엄격 모드는 시멘틱을 바꿉니다. 이 변화들에 의지하는 것은 실수와 엄격 모드를 지원하지 않는 브라우저의 에러를 야기할 것입니다. 엄격 모드를 사용하는 데에 주의하는 것을 익히세요, 그리고 피쳐 테스트로 엄격 모드를 사용하기에 적절한 부분인지 확인하고 보완하세요. 마지막으로, 엄격 모드를 지원하는 브라우저와 그렇지 않은 브라우저에서 작성한 코드의 테스트를 확실히 하도록 하세요. 

+

현재 주류의 브라우저들은 엄격 모드를 지원하고 있습니다. 하지만, 아직도 현실에서 사용되는 수 많은 브라우저의 버전들은 엄격 모드를 부분적으로만 지원하거나(Browser versions used in the wild that only have partial support for strict mode), 아예 지원을 하지 않고 있기 때문에, 맹목적으로 여기에 의지할 수는 없습니다. (예를 들면, Internet Explorer 10 버전 이하!) 엄격 모드는 시멘틱을 바꿉니다. 이 변화들에 의지하는 것은 실수와 엄격 모드를 지원하지 않는 브라우저의 에러를 야기할 것입니다. 엄격 모드를 사용하는 데에 주의하는 것을 익히세요, 그리고 피쳐 테스트로 엄격 모드를 사용하기에 적절한 부분인지 확인하고 보완하세요. 마지막으로, 엄격 모드를 지원하는 브라우저와 그렇지 않은 브라우저에서 작성한 코드의 테스트를 확실히 하도록 하세요. 

명세

-- cgit v1.2.3-54-g00ecf