저는 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 );

JavaScript 코어 데이터 유형은 브라우저 및 Node.js에서 일관되지만 추가 유형과 다르게 처리됩니다. 1) 글로벌 객체는 브라우저의 창이고 node.js의 글로벌입니다. 2) 이진 데이터를 처리하는 데 사용되는 Node.js의 고유 버퍼 객체. 3) 성능 및 시간 처리에는 차이가 있으며 환경에 따라 코드를 조정해야합니다.

javaScriptUSTWOTYPESOFSOFCOMMENTS : 단일 라인 (//) 및 multi-line (//)

Python과 JavaScript의 주요 차이점은 유형 시스템 및 응용 프로그램 시나리오입니다. 1. Python은 과학 컴퓨팅 및 데이터 분석에 적합한 동적 유형을 사용합니다. 2. JavaScript는 약한 유형을 채택하며 프론트 엔드 및 풀 스택 개발에 널리 사용됩니다. 두 사람은 비동기 프로그래밍 및 성능 최적화에서 고유 한 장점을 가지고 있으며 선택할 때 프로젝트 요구 사항에 따라 결정해야합니다.

Python 또는 JavaScript를 선택할지 여부는 프로젝트 유형에 따라 다릅니다. 1) 데이터 과학 및 자동화 작업을 위해 Python을 선택하십시오. 2) 프론트 엔드 및 풀 스택 개발을 위해 JavaScript를 선택하십시오. Python은 데이터 처리 및 자동화 분야에서 강력한 라이브러리에 선호되는 반면 JavaScript는 웹 상호 작용 및 전체 스택 개발의 장점에 없어서는 안될 필수입니다.

파이썬과 자바 스크립트는 각각 고유 한 장점이 있으며 선택은 프로젝트 요구와 개인 선호도에 따라 다릅니다. 1. Python은 간결한 구문으로 데이터 과학 및 백엔드 개발에 적합하지만 실행 속도가 느립니다. 2. JavaScript는 프론트 엔드 개발의 모든 곳에 있으며 강력한 비동기 프로그래밍 기능을 가지고 있습니다. node.js는 풀 스택 개발에 적합하지만 구문은 복잡하고 오류가 발생할 수 있습니다.

javaScriptisNotBuiltoncorc; it'SangretedLanguageThatrunsonOngineStenWrittenInc .1) javaScriptWasDesignEdasAlightweight, 해석 hanguageforwebbrowsers.2) Endinesevolvedfromsimpleplemporectreterstoccilpilers, 전기적으로 개선된다.

JavaScript는 프론트 엔드 및 백엔드 개발에 사용할 수 있습니다. 프론트 엔드는 DOM 작업을 통해 사용자 경험을 향상시키고 백엔드는 Node.js를 통해 서버 작업을 처리합니다. 1. 프론트 엔드 예 : 웹 페이지 텍스트의 내용을 변경하십시오. 2. 백엔드 예제 : node.js 서버를 만듭니다.

Python 또는 JavaScript는 경력 개발, 학습 곡선 및 생태계를 기반으로해야합니다. 1) 경력 개발 : Python은 데이터 과학 및 백엔드 개발에 적합한 반면 JavaScript는 프론트 엔드 및 풀 스택 개발에 적합합니다. 2) 학습 곡선 : Python 구문은 간결하며 초보자에게 적합합니다. JavaScript Syntax는 유연합니다. 3) 생태계 : Python에는 풍부한 과학 컴퓨팅 라이브러리가 있으며 JavaScript는 강력한 프론트 엔드 프레임 워크를 가지고 있습니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구