JavaScript arrays_javascript 팁의 이상한 동작
프로그래밍 언어에서 배열의 중요성은 자명합니다. JavaScript의 배열은 가장 일반적으로 사용되는 객체 중 하나입니다. 배열은 약한 유형으로 인해 매우 유연하고 강력합니다. 동일한 유형 또는 해당 하위 유형의 요소만 저장할 수 있는 Java와 같은 강력한 유형의 고급 언어의 배열과 달리 JavaScript는 여러 유형의 요소를 동일한 배열에 저장할 수 있으며 길이도 동적으로 조정할 수 있습니다. 데이터가 증가함에 따라 또는 배열 길이에 대한 자동 변경을 줄입니다.
오늘은 JavaScript 배열을 검토한 후 그의 이상한 행동을 요약하여 공유하겠습니다. 잘못된 점이 있으면 지적해 주세요.
이상한 1: Array() 생성자 함수는 new 키워드를 사용하지 않고 호출할 수 있습니다:
Array() 생성자는 자신에게 전달된 매개변수를 배열의 요소로 사용하여 일반적으로 다음과 같이 호출합니다.
var a = new Array(1, 2, "bom!"); a.length; //3 console.log(a); //[1, 2, "bom!"]
그러나 다음과 같이 new를 생략할 수도 있습니다.
var a = Array(1, 2, "bom!"); a.length; //3 console.log(a); //[1, 2, "bom!"]
내부 구현 메커니즘이 무엇인지는 모르지만 생성자 함수는 다음과 같이 정의될 수 있을 것으로 추측됩니다.
function Array(args) { //如果,this不是Array的实例的话, //说明不是通过new调用的,则在这里再重新调用 if( !this instanceof Array) { return new Array(args); }//后面是正常调用时的实现代码<br />//...<br />}
이상한 2: 생성자에 매개변수가 하나만 전달되면 동작을 예측할 수 없습니다
하나의 매개변수만 전달되고 이 매개변수가 정수이면 배열이 얻어지며 길이는 이 매개변수와 같습니다
var a = new Array(12); console.log(a.length); //12 console.log(a); //[]
부동 소수점 숫자만 전달하면 오류가 보고됩니다.
var a = new Array(1.1); //Uncaught RangeError: Invalid array length(…)
문자열을 배열의 첫 번째 요소로 사용하면 문자열 전달이 제대로 작동합니다.
var a = new Array("1.1"); console.log(a.length); // console.log(a); //["1.1"]
그러나 모호함을 피하기 위해 리터럴 형식으로 직접 배열을 생성하는 것이 가장 좋습니다.
var a = []; //空数组 var a = [1, 1, "bom"]; //三个元素 var a = [12]; //一个元素,并且元素是12
이상한 3: 배열의 길이 속성을 수정할 수 있음(쓰기 가능)
다음과 같이 길이를 2에서 100으로 직접 변경했더니 수정에 성공했습니다! ! !
var a = [1, 2, 3, 4]; console.log(a.length); //4 a.length = 100; console.log(a.length); //100
길이가 100임에도 불구하고 a[4]-a[99] 요소는 존재하지 않습니다. 예를 들어 해당 값을 요청하는 경우 0에서 a.length까지 루프에서 수행하면 정의되지 않음이 반환됩니다. .
다음 시청:
var a = [1, 2, 3, 4]; a.length = 100; console.log(a[10]); //undefined console.log(99 in a); //false
아래 예와 다소 유사:
var a = [1, 2, 3, 4]; a[99] = undefined; console.log(a.length); //100
차이점은 a[99]가 정의되지 않은 값을 가지고 있음에도 불구하고 우리가 만들었기 때문에 존재한다는 것입니다. 그러나 다음과 같이 a[4]부터 a[98]까지의 모든 요소는 존재하지 않습니다.
var a = [1, 2, 3, 4]; a[99] = undefined; console.log(99 in a); //true; console.log(98 in a); //false console.log(a.length); //100
위 내용은 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)

뜨거운 주제











방법: 1. 첫 번째 요소를 삭제하려면 Shift()를 사용하세요. 구문은 "array.shift()"입니다. 2. pop()을 사용하여 마지막 요소를 삭제하면 구문은 "array.pop()"입니다. 임의의 위치에서 요소를 삭제하려면 splice()를 사용하세요. 구문은 "array.splice(position, number)"입니다. 4. 마지막 N개 요소를 삭제하려면 length를 사용하세요. 구문은 "array.length=original array length-N"입니다. ; 5. 요소를 지우려면 빈 배열 "[ ]"를 직접 할당합니다. 6. 지정된 아래 첨자에서 요소를 삭제하려면 삭제를 사용합니다.

JS에서 배열의 길이를 얻는 것은 매우 간단합니다. 각 배열에는 배열의 최대 길이를 반환하는 길이 속성이 있습니다. 즉, 해당 값은 최대 첨자 값에 1을 더한 것과 같습니다. 숫자 첨자는 2^32-1보다 작아야 하므로 길이 속성의 최대값은 2^32-1과 같습니다. 다음 코드는 빈 배열을 정의한 다음 인덱스가 100인 요소에 값을 할당하고 length 속성은 101을 반환합니다. 따라서 길이 속성은 배열 요소의 실제 수를 반영할 수 없습니다.

3가지 변환 방법: 1. 분할()을 사용하여 주어진 문자열을 문자열 배열로 분할합니다. 구문은 "str.split(구분자, 배열의 최대 길이)"입니다. 2. 확장 연산자 "..."를 사용하여 반복 가능합니다. 문자열 객체를 문자 배열로 변환합니다("[...str]" 구문). 3. Array.from()을 사용하여 문자열을 "Array.from(str) " 구문으로 배열로 변환합니다.

js 배열을 php 배열로 변환할 수 있습니다. 1. php 샘플 파일을 생성합니다. 2. "JSON.stringify()" 구문을 사용하여 js 배열을 JSON 형식의 문자열로 변환합니다. "json_decode()" 구문을 사용하여 "JSON 형식 문자열을 PHP 배열로 변환합니다. 여기에 매개변수 true가 추가됩니다. 이는 JSON 형식 문자열이 PHP 연관 배열로 변환됨을 의미합니다.

js 배열에서 요소를 삭제하는 방법에는 4가지가 있습니다. 1. splice를 사용합니다. 2. 필터를 사용합니다. 3. pop 메서드를 사용하고 4. delete 키워드를 사용합니다.

JavaScript의 Array.prototype.sort() 메서드는 배열 요소를 정렬하는 데 사용됩니다. 이 메서드는 제자리에서 정렬됩니다. 즉, 새로 정렬된 배열을 반환하는 대신 원래 배열을 수정합니다. 기본적으로 sort() 메서드는 유니코드 코드 포인트 값에 따라 문자열을 정렬합니다. 즉, 객체나 기타 복잡한 데이터 유형을 정렬하는 대신 주로 문자열과 숫자를 정렬하는 데 사용됩니다.

JavaScript에서는 길이 속성을 사용하여 배열의 길이를 얻을 수 있으며 구문은 "array object.length"입니다. 감소() 또는 감소Right() 함수를 사용하여 요소의 합계를 찾을 수 있습니다. 구문은 " arr.reduce(function f(pre,curr){ return pre+cur})" 또는 "arr.reduceRight(function f(pre,curr){return pre+cur})".

웹 개발에서는 자바스크립트(JS)와 PHP가 가장 많이 사용되는 프로그래밍 언어이기 때문에 개발 과정에서 배열은 불가피합니다. 이러한 상황에 대응하여 JS 배열을 PHP 배열로 변환해야 하는 경우가 많습니다. 이 기능을 구현하는 방법은 여러 가지가 있으며, 아래에서 하나씩 소개하겠습니다.
