Dark Horse Programmer JavaScript 비디오 튜토리얼'에서는 JavaScript에 대해 자세히 소개합니다. JavaScript는 문자 그대로의 스크립팅 언어이자 클라이언트 측 웹 개발에 널리 사용되는 스크립팅 언어입니다. 현재 수백만 개의 웹 페이지에서 디자인 개선, 양식 유효성 검사, 브라우저 감지, 쿠키 생성 등을 위해 사용됩니다.
동영상 재생 주소: http://www.php.cn/course/500.html
이 동영상의 난이도는 논리 능력을 테스트하는 배열 루프입니다. 다음은 다양한 루프 예를 요약한 것입니다.
배열의 요소를 어떻게 순회하나요? 20년 전 JavaScript가 처음 등장했을 때 다음과 같이 배열 순회를 구현할 수 있었습니다:
var arr=["one","two","three"];2 for(var i=0;i<arr.length;i++){3 document.write(arr[i]);4 }
ES5 공식 릴리스 이후 내장된 forEach 메서드를 사용하여 배열을 순회할 수 있습니다.
myArray.forEach(function (value) { console.log(value);});实际上forEach有三个参数 分别为 值 下标 数组本身 于是我们有[].forEach(function(value, index, array) { // ...}); 对比jQuery中的$.each方法: $.each([], function(index, value, array) { // ...});
첫 번째 및 두 번째 매개변수는 정반대입니다. 모두 주의해서 잘못 기억하지 마세요. $.map과 같은 유사한 메소드의 경우에도 마찬가지입니다.
$.each(Array, function(i, value) { Array //数组 this; //this指向当前元素 i; //i表示Array当前下标 value; //value表示Array当前元素}); var arr = [ "one", "two", "three", "four"]; $.each(arr, function(){ alert(this); }); //上面这个each输出的结果分别为:one,two,three,four var obj = { one:1, two:2, three:3, four:4}; $.each(obj, function(key, val) { alert(obj[key]); }); //这个each就有更厉害了,能循环每一个属性 //输出结果为:1 2 3 4
예:
arr.forEach(function(i,j,v){ document.write("<br />数组的值"+i+ "<br />数组的下标"+j+","+ "<br />数组本身"+v+"---") })
이 코드는 더 간결해 보이지만 이 방법에는 작은 결함도 있습니다.
forEach는 충분히 유연하지 않습니다.
arr.forEach는 사용하기 쉽지 않습니다. break 문을 사용하여 루프를 중단하거나 return 문을 사용하여 외부 함수로 돌아갈 수 없습니다.
물론 for 루프 구문을 사용하여 배열 요소를 순회하는 것도 좋습니다.
그러면 for-in 루프를 시도해보고 싶을 것입니다:
for (var index in myArray) { // 千万别这样做 console.log(myArray[index]); }
이 코드에서 index에 할당된 값은 실제 숫자가 아니라 문자열 "0", "1", "2"입니다. "2" + 1 == "21"과 같은 문자열 산술 계산을 실수로 수행할 가능성이 매우 높으며, 이는 인코딩 프로세스에 큰 불편을 초래합니다.
간단히 말하면
for-in은 일반 객체용으로 설계되었기 때문에 문자열 유형의 키를 얻을 수 있으므로 배열 탐색에는 적합하지 않습니다.
for...in은 배열 순회에 적합하지 않습니다.
for...in은 사용자 정의 속성이나 프로토타입 속성도 순회하며, 인덱스는 숫자 값이 아닌 문자열이며 어떤 경우에는 순회조차 하지 못할 수도 있습니다. 순서대로
강력한 for -of 루프
ES6은 여러분이 작성한 JS 코드를 손상시키지 않습니다. 수천 개의 웹 사이트가 for-in 루프에 의존하고 있으며 일부는 배열 탐색에 사용하기도 합니다. for-in 루프를 수정하여 배열 순회 지원을 추가하면 더욱 혼란스러워질 수 있으므로 표준 위원회는 현재 문제를 해결하기 위해 ES6에 새로운 루프 구문을 추가했습니다.
객체를 순회하기 위해 for...in을 사용하는 것만큼 간단하고 사용하기 쉬운, 배열을 순회하는 더 편리한 방법이 필요합니다. 즉, for...of
이렇습니다:
for (var value of myArray) { console.log(value); }
예, 이렇게 합니다. 이전 내장 메소드에 비해 루프가 친숙해 보입니까? 자, for-of 루프의 모습 아래 어떤 강력한 기능이 숨겨져 있는지 살펴보겠습니다. 지금은 다음 사항만 기억하세요.
이것은 배열 요소를 반복하는 가장 간결하고 간단한 구문입니다.
이 메서드는 for-in 루프의 모든 함정을 피합니다.
forEach()와 달리 break, continue 및 return 문에 올바르게 응답합니다.
for-in 루프는 객체 속성을 탐색하는 데 사용됩니다.
for-of 루프는 배열의 값과 같은 데이터를 반복하는 데 사용됩니다.
하지만 그것만이 아닙니다!
for-of 루프는 다른 컬렉션도 탐색할 수 있습니다.
for-of 루프는 배열을 지원할 뿐만 아니라 DOM NodeList 개체와 같은 대부분의 배열과 유사한 개체도 지원합니다.
for-of 루프는 문자열을 순회할 일련의 유니코드 문자로 처리하는 문자열 순회도 지원합니다.
for (var value of myArray) { console.log(value); }
Map 및 Set 개체 순회도 지원합니다.
$.map(array,function)
구문 분석: 배열의 각 요소에 대해 함수 함수를 호출하여 처리한 다음 결과를 반환하여 새 배열을 얻습니다.
예를 통한 설명: 배열의 각 요소에 2를 곱하고 새 배열을 반환합니다. 코드는 다음과 같습니다
<html> <head> <script type="text/javascript" src="jquery-1.8.2.min.js"></script> <script type="text/javascript"> var arr = [2,3,6]; var arr2 = $.map(arr,function(item){return item*2;}); for(var i=0,len=arr2.length;i<len;i++){ document.write(arr2[i]+"<br />");//结果为 4 6 12 } </script> </head> </html>
추가 설명: 항목은 각 요소를 나타냅니다. 이는 형식적인 매개변수이며 다른 항목으로 대체될 수 있습니다.
이 영상의 선생님은 명확한 정리, 레이어별 분석, 연동 링크, 엄격한 논증, 엄격한 구조로 간단하고 이해하기 쉽게 설명합니다. 학생들의 주의를 집중시키고 교실 수업 과정을 통제하기 위해 이성을 사용합니다. 교수법은 위트가 넘칩니다. 다양한 교수법과 기술을 쉽게 사용할 수 있으며, 다듬은 흔적 없이 자유롭고 적절하게 사용할 수 있습니다.
위 내용은 Dark Horse 프로그래머 JavaScript 비디오 리소스 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!