JavaScript는 "객체 지향 프로그래밍" 또는 "객체 지향 프로그래밍"을 사용합니다. 소위 "객체 지향 프로그래밍"이란 JavaScript의 범위를 크고 작은 개체로 나누고, 매우 세부적일 때까지 개체 아래의 개체를 계속 나누는 것을 의미합니다. 모든 프로그래밍은 개체를 시작점으로 개체를 기반으로 합니다. 변수만큼 작거나 웹 페이지 문서, 창, 심지어 화면만큼 큰 것들은 모두 객체입니다. 이 장에서는 JavaScript "객체 지향"의 작동을 설명합니다. 객체에 대한 기본 지식 객체는 JavaScript의 "영향권"으로 나눌 수 있는 작은 조각입니다. 텍스트 조각, 그림, 형식 등이 될 수 있습니다. 각 객체에는 고유한 속성, 메서드 및 이벤트가 있습니다. 개체의 속성은 문자열의 길이, 이미지의 길이와 너비, 텍스트 상자(텍스트 상자)의 텍스트 등과 같은 개체의 특정 속성을 반영합니다. 예를 들어 양식의 "제출", 창의 "스크롤" 등과 같은 개체의 이벤트는 개체에서 발생하는 일에 응답할 수 있습니다. 양식의 "제출 이벤트"를 생성하고 연결을 클릭하면 양식의 "제출 이벤트"가 생성됩니다. 모든 개체가 위의 세 가지 속성을 갖는 것은 아니며 일부 개체에는 이벤트가 없고 일부 개체에는 속성만 있습니다. 개체의 "속성"을 참조하려면 "." 메서드를 사용하세요. 기본 객체 이제 위에서 배운 내용을 복습해야 합니다. 일부 데이터 유형을 객체 관점에서 다시 학습해야 합니다. 숫자 “숫자” 개체. 이 개체는 거의 사용되지 않으며 저자는 한 번도 본 적이 없습니다. 그러나 "숫자", 즉 "변수"에 속하는 개체가 많이 있습니다. 속성 MAX_VALUE 사용법: Number.MAX_VALUE; "최대값"을 반환합니다. MIN_VALUE 사용법: Number.MIN_VALUE; "최소값"을 반환합니다. NaN 사용법: Number.NaN 또는 NaN은 "NaN"을 반환합니다. "NaN"(숫자 아님)은 아주 초기에 도입되었습니다. NEGATIVE_INFINITY 사용법: Number.NEGATIVE_INFINITY; 반환: 음의 무한대, "최소값"보다 작은 값. POSITIVE_INFINITY 사용법: Number.POSITIVE_INFINITY 반환: 양의 무한대, "최대값"보다 큰 값. 메서드 toString() 사용법: <숫자 변수>.toString() 반환값: 문자열 형식의 숫자 값. 예를 들어, a == 123;이면 a.toString() == '123'입니다. 문자열 문자열 개체입니다. 문자열 개체를 선언하는 가장 간단하고 빠르며 효과적이며 일반적으로 사용되는 방법은 개체를 직접 할당하는 것입니다. 속성 length 사용법: .length; 문자열의 길이를 반환합니다. 메서드 charAt() 사용법: .charAt(); 위치에 있는 문자열의 단일 문자를 반환합니다. 참고: 문자열의 한 문자는 위치 0에 있고, 두 번째 문자는 위치 1에 있으며, 마지막 문자는 위치 길이 - 1에 있습니다. charCodeAt() 사용법: .charCodeAt(); 문자열의 위치에 있는 단일 문자의 ASCII 코드를 반환합니다. fromCharCode() 사용법: String.fromCharCode(a, b, c...); 문자열을 반환하며, 문자열에 있는 각 문자의 ASCII 코드는 a, b, c... 등에 의해 결정됩니다. indexOf() 사용법: .indexOf([, ]); 이 메소드는 에서 파생됩니다. (가 주어지면 이전 위치를 무시합니다), 발견되면 해당 위치를 반환하고, 발견되지 않으면 "-1"을 반환합니다. 모든 "위치"는 처음부터 시작됩니다. lastIndexOf() 사용법: .lastIndexOf([, ]); indexOf()와 유사하지만 뒤에서 시작하여 찾으려고 합니다. split() 사용법: .split(); 에서 분리된 배열을 반환합니다. 그 자체는 반환된 배열에 포함되지 않습니다. 예를 들어 '1&2&345&678'.split('&')은 배열 1,2,345,678을 반환합니다. 배열에 관해서는 잠시 후에 논의하겠습니다. substring() 사용법: .substring([, ]); 의 이전 위치로 이동합니다. - = 문자열의 길이를 반환합니다. 가 지정되지 않거나 문자열 길이를 초과하는 경우 하위 문자열은 위치에서 원래 문자열의 끝까지 가져옵니다. 지정된 위치에서 문자열을 반환할 수 없으면 빈 문자열이 반환됩니다. substr() 사용법: .substr([, ]); 원래 문자열의 하위 문자열을 반환합니다. 이는 원래 문자열의 시작 부분입니다. 위치에 있고 의 길이를 갖습니다. 가 지정되지 않거나 문자열 길이를 초과하는 경우 하위 문자열은 위치에서 원래 문자열의 끝까지 가져옵니다. 지정된 위치에서 문자열을 반환할 수 없으면 빈 문자열이 반환됩니다. toLowerCase() 사용법: .toLowerCase(); 원래 문자열의 모든 대문자를 소문자로 변경하는 문자열을 반환합니다. toUpperCase() 사용법: .toUpperCase(); 원래 문자열의 모든 소문자를 대문자로 변환하는 문자열을 반환합니다. 배열 배열 객체. 배열 객체는 객체의 컬렉션이며 내부 객체는 다른 유형일 수 있습니다. 배열의 각 구성원 개체에는 배열에서의 위치를 나타내는 데 사용되는 "아래 첨자"가 있습니다("위치"이므로 0부터 시작함). 배열 정의 방법: var = new Array() 빈 배열을 정의합니다. 나중에 배열 요소를 추가하려면 다음을 사용하세요. [] = ... 여기서 대괄호는 "생략할 수 없습니다." "는 배열의 첨자를 대괄호로 묶어 표현함을 의미합니다. 배열 정의 시 데이터를 직접 초기화하려면 다음을 사용하세요. var = new Array(, , 예를 들어 var myArray = new Array(1, 4.5, 'Hi');는 myArray 배열을 정의하며 내부 요소는 다음과 같습니다. myArray[0] == 1; myArray[ 1] == 4.5; myArray[2] == '안녕하세요'. 그러나 요소 목록에 요소가 하나만 있고 이 요소가 양의 정수인 경우 이는 <양의 정수> 참고: JavaScript에는 1차원 배열만 있습니다! 4 x 5 2차원 배열을 정의하기 위해 "Array(3,4)"라는 어리석은 메서드를 사용하거나 "2차원 배열"의 요소를 반환하기 위해 "myArray[2,3]" 메서드를 사용하지 마십시오. "myArray[...,3]" 형식을 호출하면 실제로는 "myArray[3]"만 반환됩니다. 다차원 배열을 사용하려면 다음 가상 메서드를 사용하세요. var myArray = new Array(new Array(), new Array(), new Array(), ...); 사실 이것은 1차원 배열이고 그 안의 각 요소는 배열입니다. 이 "2차원 배열"의 요소를 호출하는 경우: myArray[2][3] = ... property length 사용법: .length; 즉, 배열에 몇 개의 요소가 있는지를 나타냅니다. 배열의 마지막 요소 인덱스에 1을 더한 것과 같습니다. 따라서 요소를 추가하려면 다음과 같이 하면 됩니다. myArray[myArray.length] = .... 메서드 join() 사용법: .join()은 < 기호 >로 구분된 배열의 요소를 연결하는 문자열을 반환합니다. . 이 방법은 배열의 원래 내용에 영향을 주지 않습니다. reverse() 사용법: .reverse()는 배열의 요소 순서를 바꿉니다. 배열 [1, 2, 3]에 이 방법을 사용하면 배열이 [3, 2, 1]로 변경됩니다. slice() 사용법: .slice([, ]); 부터 시작하여 원래 배열의 하위 집합인 배열을 반환합니다. 드디어 <드디어>. 가 지정되지 않으면 원래 배열의 끝까지 하위 집합이 사용됩니다. sort() 사용법: .sort([]); 배열의 요소를 특정 순서로 정렬합니다. 이 지정되지 않은 경우 알파벳 순서가 사용됩니다. 이 경우 80은 9보다 높은 순위입니다. 을 지정하면 에 지정된 정렬 방법이 정렬됩니다. <메소드 함수> 여기서는 몇 가지 유용한 <메소드 함수>를 소개합니다. 오름차순으로 숫자 정렬: function sortMethod(a, b) { return a - b; } myArray.sort(sortMethod) 숫자를 내림차순으로 정렬합니다. 위의 " a - b"는 "b - a"가 되어야 합니다. 기능은 아래를 참고하세요. 데이터에 대한 수학적 계산을 제공하는 수학 "Math" 개체입니다. 아래에 언급된 속성과 메소드는 "사용법"을 자세히 설명하지 않습니다. 사용 시 "Math." 형식을 사용하는 것을 잊지 마세요. 속성 E는 상수 e(2.718281828...)를 반환합니다. LN2는 2의 자연 로그(ln 2)를 반환합니다. LN10은 10의 자연 로그(ln 10)를 반환합니다. LOG2E 가장 낮은 값이 2인 e의 로그를 반환합니다(log2e). LOG10E는 가장 낮은 값이 10인 e의 로그를 반환합니다(log10e). PI는 π(3.1415926535...)를 반환합니다. SQRT1_2는 1/2의 제곱근을 반환합니다. SQRT2는 2의 제곱근을 반환합니다. 메소드 abs(x)는 x의 절대값을 반환합니다. acos(x)는 x의 역코사인(코사인은 x의 각도와 같음)을 라디안으로 표시하여 반환합니다. asin(x)는 x의 아크사인을 반환합니다. atan(x)는 x의 아크탄젠트를 반환합니다. atan2(x, y)는 복소 평면의 점 (x, y)에 해당하는 복소수의 인수 각도를 라디안으로 표시하고 반환하며 그 값은 -π와 π 사이입니다. ceil(x)는 x보다 크거나 같은 가장 작은 정수를 반환합니다. cos(x)는 x의 코사인을 반환합니다. exp(x)는 e의 x제곱(ex)을 반환합니다. floor(x)는 x보다 작거나 같은 가장 큰 정수를 반환합니다. log(x)는 x(ln x)의 자연 로그를 반환합니다. max(a, b)는 a, b에서 더 큰 숫자를 반환합니다. min(a, b)는 a, b 중 더 작은 수를 반환합니다. pow(n, m)은 n의 m승(nm)을 반환합니다. random()은 0보다 크고 1보다 작은 난수를 반환합니다. round(x)는 x의 반올림된 값을 반환합니다. sin(x)는 x의 사인을 반환합니다. sqrt(x)는 x의 제곱근을 반환합니다. tan(x)는 x의 탄젠트를 반환합니다. 날짜 날짜 개체입니다. 이 객체는 0001부터 9999까지의 날짜를 저장할 수 있으며 밀리초(1/1000초)까지 정확할 수 있습니다. 내부적으로 날짜 객체는 1970년 1월 1일 자정부터 날짜 객체가 가리키는 날짜까지의 밀리초 수를 나타내는 정수입니다. 참조 날짜가 1970년 이전이면 음수입니다. 모든 날짜와 시간은 시간대가 지정되지 않은 경우 "GMT"(그리니치 표준시)와 수치적으로 동일한 "UTC"(세계시) 시간대를 사용합니다. 날짜 객체 정의: var d = new Date; 이 메서드는 d를 날짜 객체로 만들고 초기 값은 현재 시간입니다. 초기 값을 사용자 정의하려면 다음을 사용할 수 있습니다. var d = new Date(99, 10, 1) //October 1, 1999 var d = new Date('Oct 1 , 1999'); // 1999년 10월 1일 및 기타 방법. 가장 좋은 방법은 아래에 소개된 "방법"을 사용하여 시간을 엄격하게 정의하는 것입니다. 메서드 아래 "g/set[UTC]XXX"와 같이 많은 메서드가 있는데, 이는 "getXXX" 메서드와 "setXXX" 메서드가 모두 있음을 의미합니다. "Get"은 특정 값을 가져오는 것이고 "set"은 특정 값을 설정하는 것입니다. "UTC" 문자가 있으면 획득/설정된 값이 UTC 시간을 기준으로 한다는 의미이고, 그렇지 않은 경우 현지 시간 또는 탐색 기간의 기본 시간을 기준으로 한다는 의미입니다. 설명이 없는 경우 메소드의 사용 형식은 "."이며 아래와 동일합니다. g/set[UTC]FullYear() 4자리로 표시되는 연도를 반환/설정합니다. "x.set[UTC]FullYear(99)"를 사용하면 연도가 0099로 설정됩니다. g/set[UTC]Year()는 연도를 두 자리로 반환/설정합니다. 설정 시 브라우저는 자동으로 처음에 "19"를 추가하므로 "x.set[UTC]Year(00)"을 사용하여 연도를 1900으로 설정합니다. g/set[UTC]Month()는 월을 반환/설정합니다. g/set[UTC]Date()는 날짜를 반환/설정합니다. g/set[UTC]Day()는 요일을 반환/설정하며, 0은 일요일을 의미합니다. g/set[UTC]Hours()는 24시간 형식으로 시간 수를 반환/설정합니다. g/set[UTC]Minutes()는 분을 반환/설정합니다. g/set[UTC]Seconds()는 초 수를 반환/설정합니다. g/set[UTC]Milliseconds()는 밀리초 수를 반환/설정합니다. g/setTime()은 날짜 객체의 내부 처리 방식인 시간, 즉 1970년 1월 1일 0시부터 날짜 객체가 가리키는 날짜까지 계산된 밀리초 수를 반환/설정합니다. 날짜 객체가 가리키는 시간을 1시간 지연시키려면 다음을 사용하세요: "x.setTime(x.getTime() 60 * 60 * 1000);" (1시간 60분, 1분 60초, 1초 1000 밀리초). getTimezoneOffset()은 날짜 객체에서 사용하는 시간대와 그리니치 표준시 사이의 차이(분)를 반환합니다. 그리니치 동쪽 도시 지역에서는 값이 음수입니다. 예를 들어 중국 시간대(GMT 0800)는 "-480"을 반환합니다. toString()은 날짜 객체가 가리키는 날짜를 설명하는 문자열을 반환합니다. 이 문자열의 형식은 "2000년 7월 21일 금요일 15:43:46 UTC 0800"과 유사합니다. toLocaleString()은 날짜 객체가 가리키는 날짜를 설명하는 문자열을 현지 시간 형식으로 반환합니다. 예: "2000-07-21 15:43:46". toGMTString()은 날짜 객체가 가리키는 날짜를 설명하는 문자열을 GMT 형식으로 반환합니다. toUTCString()은 날짜 객체가 가리키는 날짜를 설명하는 문자열을 UTC 형식으로 반환합니다. parse() 사용법: Date.parse(); 날짜 객체의 내부 표현식을 반환합니다. 전역 객체 전역 객체는 전역 기능을 "객체화"할 목적으로 가상이라고 할 수 없습니다. Microsoft JScript 언어 참조에서는 이를 "전역 개체"라고 부르지만 해당 메서드와 속성은 "Global.xxx"로 참조되지 않고(그러면 오류가 발생함) 직접 "xxx"로 참조됩니다. 속성 NaN 아까 말했잖아요. 메소드 eval()은 괄호로 묶인 문자열을 표준 명령문이나 표현식으로 연산합니다. isFinite()는 괄호 안의 숫자가 "유한"(Number.MIN_VALUE와 Number.MAX_VALUE 사이)인 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다. isNaN()은 괄호 안의 값이 "NaN"이면 true를 반환하고 그렇지 않으면 false를 반환합니다. parseInt()는 괄호 안의 내용을 정수로 변환한 후 값을 반환합니다. 대괄호가 문자열이면 문자열 시작 부분의 숫자 부분이 정수로 변환되고, 문자로 시작하면 "NaN"이 반환됩니다. parseFloat()는 괄호 안의 문자열을 부동 소수점 숫자로 변환한 후 값을 반환합니다. 문자열 시작 부분의 숫자가 문자로 시작하면 "NaN"이 반환됩니다. toString() 사용법: .toString(); 객체를 문자열로 변환합니다. 괄호 안에 값을 지정하면 변환 과정에서 모든 값이 특정 베이스로 변환됩니다. escape()는 대괄호 안의 문자열로 인코딩된 새 문자열을 반환합니다. 이 인코딩은 URL에 적용됩니다. 즉, 공백은 " " 형식으로 작성됩니다. " "은(는) 인코딩되지 않았습니다. " "을(를) 인코딩하려면 다음을 사용하십시오: escape('...', 1). unescape()는 escape()의 역과정입니다. 괄호 안의 문자열을 일반 문자열로 디코딩합니다. 함수의 정의 소위 '함수'란 값을 반환하는 객체 또는 객체의 메소드를 말합니다. 함수 유형 일반적인 함수에는 배열을 구성할 수 있는 생성자(예: 전역 개체의 메서드), 사용자 정의 함수 다음 문을 사용하여 함수를 정의합니다. 함수 함수 이름([매개변수 집합]) { ... [return[ <값>] ; ] ... } 이 중 함수 뒤와 함수 끝에 사용하는 중괄호는 전체 함수가 한 문장이라도 생략할 수 없습니다. 함수 이름에는 변수 이름과 동일한 명명 규칙이 있습니다. 즉, 문자, 숫자, 밑줄, 선행 문자만 포함하고 예약어 등으로 반복할 수 없습니다. 매개변수 집합은 선택사항이지만 괄호는 반드시 있어야 합니다. 매개변수는 함수 외부에서 함수 내부로 정보를 전달하는 브리지입니다. 예를 들어 함수에 3의 세제곱을 반환하도록 요청하려면 함수에 "3" 값을 알려주어야 합니다. 이번에는 값을 받을 변수가 있어야 합니다. 이 변수를 매개변수라고 합니다. 매개변수 세트는 a, b, c와 같이 쉼표로 구분된 하나 이상의 매개변수 세트입니다. 함수 안에는 한 줄 이상의 명령문이 있습니다. 이 명령문은 즉시 실행되지 않고 다른 프로그램이 호출할 때만 실행됩니다. 이러한 문에는 "return" 문이 포함될 수 있습니다. 함수를 실행할 때 return 문을 만나면 함수는 즉시 실행을 중지하고 이를 호출한 프로그램으로 돌아갑니다. "return" 뒤에 가 오면 함수를 종료할 때 값이 반환됩니다. 함수 내부에서는 매개변수를 직접 변수로 사용할 수 있고, var 문을 사용하여 새 변수를 생성할 수 있지만, 함수 외부의 프로시저에서는 이러한 변수를 호출할 수 없습니다. 함수 내부의 정보를 외부 호출에 사용할 수 있도록 하려면 "반환" 반환 값을 사용하거나 전역 변수를 사용하십시오. 전역 변수 Script의 "루트"(함수 내부가 아님)에서 "var" 문으로 정의된 변수는 전역 변수로서 전체 프로세스 중 어디에서나 호출하고 변경할 수 있습니다. 예 function addAll(a, b, c) { return a b c } var total = addAll(3, 4, 5); > 이 예에서는 a, b, c라는 3개의 매개변수가 있는 "addAll"이라는 함수를 생성합니다. 해당 함수는 세 개의 숫자를 더한 결과를 반환하는 것입니다. 함수 외부에서 "var total = addAll(3, 4, 5);"를 사용하여 함수의 반환 값을 받습니다. 함수에는 반환 값이 없는 경우가 더 많습니다. Basic 언어의 "Sub", Pascal 언어의 "procedure"와 같이 엄격함을 강조하는 일부 언어에서는 이러한 종류의 함수를 "procedure"라고 합니다. 속성 arguments 외부 프로그램이 함수를 호출할 때 지정하는 매개변수를 반영하는 배열입니다. 사용법: 함수 내에서 직접 "인수"를 호출합니다.