최근 외국 프론트 엔드 코드를 살펴보면 ES6의 새로운 기능이 매우 인기가 높아졌으며 특히 응용 프로그램이 매우 일반적이라는 것을 알았습니다.
LET의 사용은 VAR과 동일하지만 구문 및 의미 및 성능 측면에서 많은 개선을 받았습니다. 아래 두 가지 측면과 비교해 봅시다
구문 >>
for (var i = 0; i <2; i ++) {console.log ( '외부 i :'+i); for (var i = 0; i <2; i ++) {console.log ( '내부 i :'+i);}}이것은 공통 중첩 루프이며, 모두가 계산할 변수 i를 정의하고 실행 결과는 다음과 같습니다.
외부 I : 0
내부 I : 0
내부 I : 1
I의 값이 내부 루프에 의해 수정되므로 외부 루프가 중단되는 것을 알 수 있습니다. 일반적인 솔루션은 내부 루프에서 다른 변수를 사용하는 것이지만 실수로 실수로 오류가 발생할 수 있습니다.
이제 var를 변경하십시오
for (i = 0; i <2; i ++) {console.log ( '외부 i :'+i); for (i = 0; i <2; i ++) {console.log ( '내부 i :'+i);}}출력 결과는 다음과 같습니다.
외부 I : 0
내부 I : 0
내부 I : 1outer I : 1
내부 I : 0
내부 I : 1
정상, 내부 및 외부 레이어는 효과가 없습니다.
예 2
Console.log (a); var a = 'hi';
출력 결과는 정의되지 않았습니다. 로그 (A)의 실행은 변수를 선언하기 전입니다. 오류가없는 이유는 무엇입니까? 이 두 줄의 코드의 실제 효과는 다음과 같습니다.
var a; console.log (a); a = 'hi';
JS 코드를 구문 분석 할 때 변수 선언이 시작 위치로 표시되며 혼란 스럽습니다.
대신 LET를 사용한 후에는 아무런 문제가 없으며 오류가 직접보고됩니다.
Console.log (a); // upphed referenceError : a는 정의되지 않습니다. a = 'hi';
간단한 성능 테스트
var start = + new date (); for (var i = 0; i <10000000; i ++) {var num = 123; var str = 'abc'; var obj = {key : 'value'}; var arr = [ 'bill', 'dell'];} var end = + new date (); console.log (end -start);Firefox의 평균 실행 결과는 53ms입니다
하자
'strict'var start = + new date (); for (var i = 0; i <10000000; i ++) {let num = 123; let str ='abc '; let obj = {key :'value '}; arr = ['bill ','dell '];} var end = + new 날짜 (); console.log (시작);평균 결과는 5ms이며 속도는 분명합니다.
위의 것은 편집자가 당신에게 소개하자 JavaScript6의 새로운 문법 이점입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!