자바스크립트의 객체와 배열의 응용기술_기초지식
저는 3년 넘게 JavaScript를 사용해왔지만 객체, 배열 등 일부 세부 사항에 대해서는 아직 거의 알지 못하며 가장 기본적인 몇 가지 작업만 사용해 왔습니다. 이것은 제가 공부할 때 가지고 있는 나쁜 습관입니다. 저는 게으른 편이라 좀 더 복잡한 논리를 보면 이해가 안 되는 게 많아요. ASP를 배울 때 ASP와 스크립트의 관계를 모르고, html을 배울 때 DOM이 무엇인지 모르듯이... 그러다 보니 탄탄하지 않고 천천히 배우다가 그만 두게 됩니다. 약간 복잡한 문제에 직면했을 때 학습합니다(너무 멀리 가고 있습니다).
오늘도 스크립트를 계속 최적화하다가 일부 배열을 병합하려고 할 때 문제가 발생하여 매뉴얼을 주의 깊게 읽고 몇 가지 테스트를 수행했습니다.
Javascript 1.2 이상에서는 []를 사용하여 배열을 만들 수 있습니다.
var firstArray = []
var secondArray = ["red", "green", "blue" ];
var thirdArray = [,,,,];
배열이 생성된 후 요소를 추가할 수 있습니다:
secondArray[4] = 28;
이렇게 결과는 4번째 요소와 2번째 요소 사이에 1개의 빈 요소가 됩니다.
결과는 다음과 유사합니다: ["red", "green", "blue",,28]
배열을 초기화해야 한다는 점에 유의해야 합니다. 배열 정의를 테스트했습니다. element:
var arrArray = [[]];
원래는 2차원 배열 구현을 구상했지만 결과적으로 i>에서는 arrArray[i][0]을 사용할 수 없습니다. 0!
자세히 살펴본 후 arrArray[0]는 실제로 빈 배열로 정의되어 있고 다른 요소는 정의되지 않았음을 깨달았습니다. 이는
var arrArray=[]
arrArray[0]=[와 동일합니다. ] ;
그래서 arrArray[1]은 정의되어 있지 않으므로 배열로 연산하면 오류가 발생합니다.
배열 요소 삭제: delete
var myColors = ["red", "green", "blue"]
delete myColors[1];
alert("myColors[1]의 값: " myColors[1]);
삭제 결과는 myColors[1]=undefine이지만 myColors.length는 변경되지 않고 myColors는 예: ["red",, "blue"]
slice()로 배열 요소를 바꾸거나 완전히 삭제합니다.
var myArray = [1, 2, 3, 4 , 5 ];
myArray.slice(2); // [3, 4, 5]를 반환합니다.
myArray.slice(1, 3); // [2, 3]을 반환합니다.
myArray.slice (- 3); // [3, 4, 5]를 반환합니다.
myArray.slice(-3, -1); // [3, 4]를 반환합니다.
myArray.slice(-4, 3); // [2, 3]을 반환합니다.
myArray.slice(3, 1); // []을 반환합니다.
var myArray = [1, 2, 3, 4, 5]; .splice (3,2,''a'',''b'')
// 4,5를 반환합니다 [1,2,3,''a'',''b'']
myArray .splice(1,1,"in","the","middle");
// 2를 반환합니다. [1,"in","the","middle",3,''a' ', ''b'']
문서를 읽은 후 배열이 참조로 전달된다는 것을 알았습니다!
var x = [10, 9, 8];
var y = x
x[0] = 2
alert("y의 첫 번째 요소 값 is: " y[0]);
결과가 무엇일 것 같나요?
다시 살펴보세요:
// 참조 유형 선언(배열)
var refType = ["first ", " second", " third"]; / 기본 유형(숫자) 선언
var primType = 10;
// 두 개의 인수를 사용하여 수정하는 함수 선언
function 수정값(ref, prim)
{
ref[0] = "changed"; // 첫 번째 인수인 배열을 수정합니다.
prim = prim - 8 // 두 번째 인수인 숫자를 수정합니다.
// 호출 함수
modifyValues(refType, primType);
// 참조 유형의 값을 인쇄합니다.
document.writeln("The value of refType is: ", refType ">");
//기본 유형의 값 인쇄
document.writeln("The value of primType is: ", primType)
테스트 중 문제가 발견되었습니다.
var arr=[];
arr['a']=1;
arr['b']=2
alert(arr.length); 🎜> 뜨는 숫자는 0이에요!
문서를 읽은 후 이러한 배열을 연관 배열이라고 배웠습니다. arr['a']는 arr.a와 동일하고, arr.length는 arr['length']와 동일하며, arr.length는 arr을 초기화(var arr=[];)하면 자동으로 값 0이 할당됩니다.
어떤 사람들은 이 연관 배열을 JavaScript 해시 테이블이라고 부릅니다. 엄밀히 말하면 연관배열과 일반배열 자체가 객체이고(말도 안되는 소리, 자바스크립트에서는 모든 것이 객체입니다 - -) 의미와 사용법은 동일합니다.다음 예를 살펴보세요.
var arr=[];
arr=[1,2,3]
arr.test='test'
alert(arr);
alert(arr[1]);
alert(arr['test'])
var arr=[2,3,4]; 0 ]);
var arr={}; 및 var arr=[]는 모두 var arr=function(){};으로 작성할 수 있습니다.
위 코드에서 볼 수 있듯이 아래 첨자 배열과 연관 배열은 독립적입니다. 첨자는 첨자 배열에만 적용되며 연관 배열은 길이 속성에 영향을 주지 않습니다. 연관 배열의 레이블은 속성이지만 아래 첨자 배열의 첨자는 속성이 아니며 arr[0]!=arr.0이며 arr.0에 액세스하면 오류가 발생합니다.
어떤 시점에서는 arr['a']의 'a'가 다음과 같이 전달될 수 있으므로 arr.a 대신 arr['a']를 메서드 호출로 사용하는 것이 더 효율적일 것입니다. 메소드와 같은 변수 할당 변수:
var d=document,l=links;
이때 direct d.l을 사용하면 오류가 발생하지만, d[l]을 사용하면 올바르게 실행될 수 있다는 것을 알 수 있습니다 :)
alert(d.l);//Script error
alert(d[l]);//Display object
배열은 길이 속성을 가진 객체이므로 길이 속성을 가진 모든 객체는 배열인가요? 문자열과 같은. 테스트 후 Firefox는 String을 배열로 처리할 수 있지만 IE는 처리할 수 없다는 사실을 발견했습니다.
var myString = "Hello world"
alert(myString.length); myString[0]);
배열의 객체는 상대적으로 고유해야 하며 사용자 객체는 완전히 시뮬레이션할 수 없습니다.
function myarray(size){
this.length =size;
var x=0;
}
var arr=new myarray(5)
arr[9]=1;
alert( arr[9]);
alert(arr.length);
Array의 length 속성은 일반적인 객체 속성인 줄 알았는데, 위의 예를 보고 알게 되었습니다. arr의 길이는 더 이상 배열 길이가 아닙니다. arr의 구조는 일반적인 배열 구조가 아닙니다.
함수/클래스를 정의하는 방법에는 여러 가지가 있습니다.
function fName(arguments){
//function body
}; var fName = 함수(인수){
//함수 본문
}
var fName = new Function("arguments","/*함수 본문*/")
세 번째 방법이 더 재미있습니다. 다음 예를 보세요.
var arr=new Function("var total=0; for (var i=0; i
사용 이 메소드는 ajax에서 반환된 JSON을 구문 분석할 수 있으므로 비효율적인 eval이 필요하지 않습니다(eval보다 빠른지 테스트하지 않음).
{b:{c:2}}가 반환된 json 문자열이라고 가정합니다.
var arr=new Function("this.a={b:{c:2}};")
var aa =new arr()
alert(aa.a.b.c );

핫 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 문자열 교체 방법 및 FAQ에 대한 자세한 설명 이 기사는 JavaScript에서 문자열 문자를 대체하는 두 가지 방법 인 내부 JavaScript 코드와 웹 페이지의 내부 HTML을 탐색합니다. JavaScript 코드 내부의 문자열을 교체하십시오 가장 직접적인 방법은 대체 () 메소드를 사용하는 것입니다. str = str.replace ( "find", "replace"); 이 메소드는 첫 번째 일치 만 대체합니다. 모든 경기를 교체하려면 정규 표현식을 사용하고 전역 플래그 g를 추가하십시오. str = str.replace (/fi

그래서 여기 당신은 Ajax라는이 일에 대해 배울 준비가되어 있습니다. 그러나 정확히 무엇입니까? Ajax라는 용어는 역동적이고 대화식 웹 컨텐츠를 만드는 데 사용되는 느슨한 기술 그룹을 나타냅니다. 원래 Jesse J에 의해 만들어진 Ajax라는 용어

10 재미있는 jQuery 게임 플러그인 웹 사이트를보다 매력적으로 만들고 사용자 끈적함을 향상시킵니다! Flash는 여전히 캐주얼 웹 게임을 개발하기위한 최고의 소프트웨어이지만 JQuery는 놀라운 효과를 만들 수 있으며 Pure Action Flash 게임과 비교할 수는 없지만 경우에 따라 브라우저에서 예기치 않은 재미를 가질 수 있습니다. jQuery tic 발가락 게임 게임 프로그래밍의 "Hello World"에는 이제 jQuery 버전이 있습니다. 소스 코드 jQuery Crazy Word Composition 게임 이것은 반은 반은 게임이며, 단어의 맥락을 알지 못해 이상한 결과를 얻을 수 있습니다. 소스 코드 jQuery 광산 청소 게임

이 튜토리얼은 jQuery를 사용하여 매혹적인 시차 배경 효과를 만드는 방법을 보여줍니다. 우리는 멋진 시각적 깊이를 만드는 계층화 된 이미지가있는 헤더 배너를 만들 것입니다. 업데이트 된 플러그인은 jQuery 1.6.4 이상에서 작동합니다. 다운로드

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

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

Matter.js는 JavaScript로 작성된 2D 강성 신체 물리 엔진입니다. 이 라이브러리를 사용하면 브라우저에서 2D 물리학을 쉽게 시뮬레이션 할 수 있습니다. 그것은 단단한 몸체를 생성하고 질량, 면적 또는 밀도와 같은 물리적 특성을 할당하는 능력과 같은 많은 기능을 제공합니다. 중력 마찰과 같은 다양한 유형의 충돌 및 힘을 시뮬레이션 할 수도 있습니다. Matter.js는 모든 주류 브라우저를 지원합니다. 또한, 터치를 감지하고 반응이 좋기 때문에 모바일 장치에 적합합니다. 이러한 모든 기능을 사용하면 엔진 사용 방법을 배울 수있는 시간이 필요합니다. 이는 물리 기반 2D 게임 또는 시뮬레이션을 쉽게 만들 수 있습니다. 이 튜토리얼에서는 설치 및 사용을 포함한이 라이브러리의 기본 사항을 다루고

이 기사에서는 jQuery 및 Ajax를 사용하여 5 초마다 DIV의 컨텐츠를 자동으로 새로 고치는 방법을 보여줍니다. 이 예제는 RSS 피드의 최신 블로그 게시물을 마지막 새로 고침 타임 스탬프와 함께 가져오고 표시합니다. 로딩 이미지는 선택 사항입니다
