현재 JavaScript의 'let'키워드를 지원하는 브라우저는 무엇입니까?


80

저는 앱을 개발 중이며 Internet Explorer에 대해 걱정할 필요가 없으며 Internet Explorer1에없는 A + 등급 브라우저에있는 일부 기능을 살펴보고있었습니다.

제가 사용하고 싶었던 기능 중 하나는 JavaScript의 let 키워드입니다.

Firefox 3.6 ( 사용자 에이전트 문자열 : Mozilla / 5.0 (Windows; U; Windows NT 5.1; en-US; rv : 1.9.2) Gecko / 20100115 Firefox / 3.6 (.NET CLR 3.5.30729)). 나는 SyntaxError: missing ; before statement실행할 때 얻는다let foo = "bar" .

그렇다면 let 키워드를 지원하는 브라우저는 무엇입니까? (아니면 내가 뭘 잘못하고 있니?)


IE에서 작동하지 않는 경우 작동하지 않는 경우 이해하고 동의하는 동안 "let"키워드는 모질라 전용이라는 점을 고려해야합니다. 따라서 "IE가 지원하지 않습니다"라고 말해도 괜찮습니다. 말하자면, "모질라 만이 지원한다"는 것입니다. IE 전용 태그 또는 키워드를 피하는 것처럼 및 * 전용 키워드도 피해야합니다.
WhyNotHugo

Hugo, HTML, CSS, JS는 더 이상 웹 전용 플랫폼이 아니라는 점을 명심해야합니다. 이 코드는 IE의 어떤 버전이나 브라우저 에서도 실행되지 않는 코드입니다 . :-)
데이비드 머독

도대체 애플이하려고하는 것은 .. 2015 년이고 let애처로운 브라우저에서 지원의 흔적이 없습니다 .
Salman von Abbas

3
참고 사항 많은 이전 답변 (수락 된 답변 포함)이 이벤트에 의해 추월되었습니다. 모든 주요 최신 브라우저는 ES2015 (일명 "ES6") let키워드를 지원하지만이 글쓰기 지원은 일부 서클 (예 : iOS 10 Safari 만 해당)에서 상당히 새로운 것입니다.
TJ Crowder

수락 된 답변을 현재 올바른 답변 중 하나로 변경하는 것이 좋습니다. 예, 현재 받아 들여진 것은 당시에는 맞았지만 몇 년 동안은 틀 렸으며 SO의 목적은 역사 아카이브가 아니라 지식의 저장소가되는 것입니다. :-)
TJ Crowder

답변:


56

편집 : letconst모든 현대적인 브라우저에서 지원과의 일부된다 ECMAScript를 2015 년 (ES6) 사양.

당신은 IE11 아래에 아무것도를 지원하기 위해 필요하지 않습니다 기본적으로 경우 letconst현재 사용하는 것이 안전합니다.

의 위에 IE11 있는 작은 특질있어 let함께 사용하면 for루프, 변수가 결합되지 않은 for사용자가 예상하는대로 블록이, 그것은으로 동작var 한 ...

또한보십시오: letconst 지원.


2010의 구식 및 구식 답변 : 이러한 확장은 ECMA 표준이 아니며 Mozilla 구현에서만 지원됩니다.

브라우저 환경 에서 사용하려면 태그에 자바 스크립트 버전 번호 를 포함해야 script합니다.

<script type="application/javascript;version=1.7">  
  var x = 5;
  var y = 0;

  let (x = x+10, y = 12) {
    alert(x+y + "\n");
  }

  alert((x + y) + "\n");
</script>

1
잘; 나는 방금 내 대답을 업데이트 한 다음 당신이 1 분 안에 나를 이겼다는 것을 알았습니다.). +1
Harmen

1
감사합니다. 유형 attr없이 HTML 5의 '<script> </ script>'를 사용했습니다.
David Murdoch

19
있습니다 let키워드 ECMA 스크립트 (6) (안) 표준 지금.
Nico Burns

3
Chrome 19 이상에서는 '실험용 자바 스크립트 기능'플래그를 사용하고 node.js에서 --harmony.
Salman von Abbas

2
되어 ;version=1.7여전히 파이어 폭스에서 요구? 나는 let콘솔에서 시도 했고 작동했습니다.
sam

31

2017 년 4 월 현재 :

  • Chrome, Firefox 및 Edge와 같은 모든 최신 주요 브라우저는 ES2015 (일명 "ES6") let키워드를 지원합니다 .

  • iOS Safari는 letOS 10까지 지원하지 않았습니다 (예 : OS 9는 지원 하지 않음).

  • IE9-IE11과 같은 일부 구형 브라우저는 초기 버전을 지원 let하지만 ES2015에서 정의한 의미를 지원 하지 않습니다 (특히 for루프 헤더의 선언과 관련하여 ). 따라서 구문 오류가 아니며 변수를 선언하지만 예상대로 작동하지 않습니다. 예를 들어, 올바른 구현에서 다음 로그 0, 1 및 2; IE9-IE11에서는 3, 3, 3을 기록합니다.

  • IE8과 같은 구식 브라우저는 전혀 지원하지 않습니다.


1
유용한 답변 : +1.
MWiesner

25

Internet Explorer 11에는 부분 지원 ( for범위가 잘못됨 )이 있으며 모든 현재 브라우저 ( ECMAScript 6 호환성 표 : let ) 에서 전체 지원이 있습니다.


1
IE11은 let키워드를 "지원"하지만 (을 던지지 않는다는 점에서 SyntaxError) 해당 구현이 사양을 준수하지 않습니다. 변수가 적절하게 블록 범위가 아닙니다. (또한 11
이후의

12

Internet Explorer 및 Operalet어떤 브라우저 버전도 지원하지 않습니다 . Firefox 버전 2.0 및 Safari 3.2 이후.

Wikipedia 에서이 JavaScript 버전 표 를 참조하십시오 .

방금 JavaScript 1.7을 사용하는지 여부를 정의해야한다는 것을 알게되었습니다 . 따라서 코드는 다음과 같습니다.

<script type="application/javascript;version=1.7"> ... </script>

이 버전 사양은 이제 더 이상 사용되지 않는 것 같습니다. 버전을 지정하려고하면 Chrome이 해당 자바 스크립트를로드하지 않습니다.
Jay Shah



2

업데이트 let일뿐입니다 . Chrome은 이제 지원 하지만 "use strict"; 지령.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.