자바스크립트 배열 기초 소개_기본 지식
Javascript는 마법의 언어이며 배열도 똑같이 독특합니다. 불순물을 제거하고, 본질을 추출하고, 일반적으로 사용되는 모범 사례를 요약합니다. 오류가 있으면 지적해주세요.
자바스크립트 배열은 객체의 특성을 지닌 배열과 유사한 객체입니다. 속성 이름이 작고 연속된 정수인 경우 배열을 사용해야 하며, 그렇지 않으면 개체를 사용해야 합니다.
배열 소스
모든 배열은 배열에서 구성됩니다. 생성자 속성을 테스트해 보겠습니다.
var arr = []; arr.constructor === Array; // true arr.constructor === Array.prototype.constructor; // true
배열 생성
//数组字面量方式 var arr1 = [1, 2, 3]; // [1,2,3] //构造函数方式 var arr2 = new Array(); // [] 空数组 var arr3 = new Array('9'); // ["9"] 一个字符串元素 var arr4 = new Array(9); // [] 数组长度length为9 var arr5 = new Array([9]); // [[9]] 相当于二维数组 var arr6 = new Array(1, 2, 3); // [1, 2, 3] var arr7 = new Array(1, function f(){}, {o : 6}, null,undefined,true); // 数组可以存储任意混合数据类型
arr4의 작동 방식으로 인해 하나의 숫자 매개변수만 Array 생성자에 전달되면 생성자는 길이 속성이 설정된 빈 배열을 반환합니다. 따라서 짧고 간결한 배열 리터럴 방식을 사용하는 것이 좋습니다.
객체가 배열인지 감지
var arr1 = [1, 2, 3]; typeof(arr1); // object
typeof가 유형을 올바르게 감지하지 못한다는 것은 잘 알려져 있습니다.
arr1 instanceof Array; //true
instanceof 메서드는 웹 페이지 내에서 문제가 없습니다. 다른 웹 페이지가 중첩되면 두 개의 전역 범위가 생기고 서로 호출할 때 감지에 문제가 발생합니다.
Array.isArray(arr1); // true
Array.isArray()는 ECMAScript5의 새로운 메서드이며 결함이 없습니다. 유일한 문제는 IE8 브라우저가 이를 지원하지 않고, IE9 브라우저가 엄격 모드에서 이를 지원하지 않는다는 점이다.
Object.prototype.toString.apply(arr1).slice(8, -1); // Array
마지막 방법이 유형을 감지하는 가장 좋은 방법입니다.
배열 길이
배열의 길이도 그 속성입니다. 길이를 늘려도 범위를 벗어난 오류가 발생하지 않습니다.
길이 값은 배열의 가장 큰 정수 속성 이름에 1을 더한 값과 같습니다.
var arr1 = []; arr1[9] = 1; // 长度为10,只包含一个元素的数组
이름이 길이보다 크거나 같은 속성을 삭제하려면 작은 값을 설정하세요.
길이 값을 0으로 설정하면 배열을 지우는 것과 같습니다.
var arr2 = [1, 2, 3, 4, 5]; arr2.length = 3; // [1, 2, 3] arr2.length = 0; // []
배열 순회
배열을 순회하려면 for in 루프를 사용하여 배열을 순회하지 마세요. 왜냐하면 for in은 프로토타입 체인의 모든 속성을 순회하지만 그렇게 많이 필요하지는 않기 때문입니다. for 루프를 사용하는 것이 좋습니다.
var arr1 = [1, 2, 3]; arr1.test = 9; //for in 方式 for(var prop in arr1){ cosole.log(prop, arr1[prop]); } // 输出如下 // 0 1 // 1 2 // 2 3 // test 9 //for循环方式 for(var i = 0, len = arr1.length; i < len; i++){ console.log(arr1[i]); } //输出如下 // 1 // 2 // 3
for in 메소드에는 hasOwnProperty 함수를 사용하여 제거할 수 있는 추가 테스트 값이 있지만 이는 for 루프 메소드보다 훨씬 느립니다.
배열 길이를 캐싱하는 것은 필수 단계이며 각 액세스마다 성능 오버헤드가 있습니다(최신 브라우저는 이 측면을 최적화했습니다).
요약
Array에 대한 기본 지식에 대한 간략한 소개입니다. 이쯤 되면 Array에 대해 좀 더 포괄적으로 이해할 수 있습니다. 다음 기사에서는 Array 메서드를 소개합니다.
Javascript에는 이해하기 어려운 부분이 많지만, 오랜 기간 공부하면서 천천히 사랑에 빠졌습니다(지금은 사랑할 여자가 없기 때문입니다).

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.

이 기사는 브라우저에서 JavaScript 성능을 최적화하기위한 전략에 대해 설명하고 실행 시간을 줄이고 페이지로드 속도에 미치는 영향을 최소화하는 데 중점을 둡니다.

프론트 엔드 개발시 프론트 엔드 열지대 티켓 인쇄를위한 자주 묻는 질문과 솔루션, 티켓 인쇄는 일반적인 요구 사항입니다. 그러나 많은 개발자들이 구현하고 있습니다 ...

이 기사는 브라우저 개발자 도구를 사용하여 효과적인 JavaScript 디버깅, 중단 점 설정, 콘솔 사용 및 성능 분석에 중점을 둡니다.

기술 및 산업 요구에 따라 Python 및 JavaScript 개발자에 대한 절대 급여는 없습니다. 1. 파이썬은 데이터 과학 및 기계 학습에서 더 많은 비용을 지불 할 수 있습니다. 2. JavaScript는 프론트 엔드 및 풀 스택 개발에 큰 수요가 있으며 급여도 상당합니다. 3. 영향 요인에는 경험, 지리적 위치, 회사 규모 및 특정 기술이 포함됩니다.

이 기사는 소스 맵을 사용하여 원래 코드에 다시 매핑하여 미니어링 된 JavaScript를 디버그하는 방법을 설명합니다. 소스 맵 활성화, 브레이크 포인트 설정 및 Chrome Devtools 및 Webpack과 같은 도구 사용에 대해 설명합니다.

Console.log 출력의 차이의 근본 원인에 대한 심층적 인 논의. 이 기사에서는 Console.log 함수의 출력 결과의 차이점을 코드에서 분석하고 그에 따른 이유를 설명합니다. � ...

엔트리 레벨 타입 스크립트 자습서를 마스터 한 후에는 TypeScript를 지원하고 JavaScript로 컴파일하는 IDE에서 자신의 코드를 작성할 수 있어야합니다. 이 튜토리얼은 TypeScript의 다양한 데이터 유형으로 뛰어납니다. JavaScript에는 NULL, UNDEFINED, BOOLEAN, 번호, 문자열, 기호 (ES6에 의해 소개 됨) 및 객체의 7 가지 데이터 유형이 있습니다. TypeScript는이 기반으로 더 많은 유형을 정의 하며이 튜토리얼은이 모든 튜토리얼을 자세히 다룹니다. 널 데이터 유형 JavaScript와 마찬가지로 Null in TypeScript
