JavaScript 是使用“对象化编程”的,或者叫“面向对象编程”的。所谓“对象化编程”,意思是把 JavaScript 能涉及的范围划分成大大小小的对象,对象下面还继续划分对象直至非常详细为止,所有的编程都以对象为出发点,基于对象。小到一个变量,大到网页文档、窗口甚至屏幕,都是对象。这一章将“面向对象”讲述 JavaScript 的运行情况。
对象的基本知识
对象是可以从 JavaScript“势力范围”中划分出来的一小块,可以是一段文字、一幅图片、一个表单(Form)等等。每个对象有它自己的属性、方法和事件。对象的属性是反映该对象某些特定的性质的,例如:字符串的长度、图像的长宽、文字框(Textbox)里的文字等等;对象的方法能对该对象做一些事情,例如,表单的“提交”(Submit),窗口的“滚动”(Scrolling)等等;而对象的事件就能响应发生在对象上的事情,例如提交表单产生表单的“提交事件”,点击连接产生的“点击事件”。不是所有的对象都有以上三个性质,有些没有事件,有些只有属性。引用对象的任一“性质”用“<对象名>.<性质名>”这种方法。
基本对象
现在我们要复习以上学过的内容了——把一些数据类型用对象的角度重新学习一下。
Number “数字”对象。这个对象用得很少,作者就一次也没有见过。不过属于“Number”的对象,也就是“变量”就多了。
속성문자열 문자열 개체입니다. 문자열 개체를 선언하는 가장 간단하고 빠르며 효과적이며 일반적으로 사용되는 방법은 개체를 직접 할당하는 것입니다.
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'입니다.
속성배열 배열 객체입니다. 배열 객체는 객체의 컬렉션이며 내부 객체는 다른 유형일 수 있습니다. 배열의 각 구성원 개체에는 배열에서의 위치를 나타내는 데 사용되는 "아래 첨자"가 있습니다("위치"이므로 0부터 시작함).
length 사용법:.length;
메서드
charAt() 사용법:.charAt( ); 비트의 성격. 참고: 문자열의 한 문자는 위치 0에 있고, 두 번째 문자는 위치 1에 있으며, 마지막 문자는 위치 길이 - 1에 있습니다.
charCodeAt() 사용법:.charCodeAt( ); 위치에 있는 문자열의 단일 문자에 대한 ASCII 코드를 반환합니다.
fromCharCode() 사용법: String.fromCharCode(a, b, c...); 각 문자의 ASCII 코드가 a, b, c..로 구성된 문자열을 반환합니다. 확실해질 때까지 기다리세요.
indexOf() 사용법:.indexOf( [, ]); 이 메소드는 <다른 문자열 객체> ; 문자열 object>에서 ( 이 주어지면 이전 위치를 무시합니다), 발견되면 해당 위치를 반환하고, 발견되지 않으면 "- 1"을 반환합니다.모든 "위치"는 처음부터 시작됩니다.
lastIndexOf() 사용법:.lastIndexOf( [, ]); indexOf() 와 유사하지만 뒤에서부터 살펴봅니다. .
split() 사용법:.split( ); 에서 분리된 배열을 반환합니다. 포인트 자체는 반환된 배열에 포함되지 않습니다. 예를 들어 '1&2&345&678'.split('&')은 배열 1,2,345,678을 반환합니다. 배열에 관해서는 잠시 후에 논의하겠습니다.
substring() 사용법:.substring( [, ]); 원래 문자열의 하위 문자열을 반환합니다. 문자는 세그먼트입니다. 원래 문자열의 위치에서 위치의 이전 위치까지입니다. - = 문자열의 길이를 반환합니다. 가 지정되지 않거나 문자열 길이를 초과하는 경우 하위 문자열은 위치에서 원래 문자열의 끝까지 가져옵니다. 지정된 위치에서 문자열을 반환할 수 없으면 빈 문자열이 반환됩니다.
substr() 사용법:.substr( [, ]); 원래 문자열의 하위 문자열을 반환합니다. 문자는 섹션입니다. 위치에서 시작하여 의 길이를 갖는 원본 문자열입니다. 가 지정되지 않거나 문자열 길이를 초과하는 경우 하위 문자열은 위치에서 원래 문자열의 끝까지 가져옵니다. 지정된 위치에서 문자열을 반환할 수 없으면 빈 문자열이 반환됩니다.
toLowerCase() 사용법:.toLowerCase(); 원래 문자열의 모든 대문자가 소문자로 변경된 문자열을 반환합니다.
toUpperCase() 사용법:.toUpperCase(); 원래 문자열의 모든 소문자를 대문자로 변경한 문자열을 반환합니다.
var빈 배열을 정의합니다. 나중에 배열 요소를 추가하려면 다음을 사용하세요.= new Array();
<배열 이름>[여기서 대괄호는 "생략 가능"을 의미하지 않습니다. 배열의 아래 첨자는 대괄호를 사용하여 표현됩니다. .] = ...;
var = new Array(예: var myArray = new Array( 1, 4.5 , 'Hi'); 배열 myArray를 정의합니다. 내부 요소는 다음과 같습니다: myArray[0] == 1; myArray[2] == 'Hi'., , ...);
var myArray = new Array(new Array(), new Array(), new Array(), ...);사실 이는 1차원 배열이며, 그것은 배열입니다. 이 "2차원 배열"의 요소를 호출하는 경우: myArray[2][3] = ...;
속성Math 데이터에 대한 수학적 계산을 제공하는 "수학" 개체입니다. 아래에 언급된 속성과 메소드는 "사용법"을 자세히 설명하지 않습니다. 사용 시 "Math.
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) {숫자를 내림차순으로 정렬합니다. 위의 "a - b"는 "b - a"가 되어야 합니다.
return a - b;
}
myArray.sort(sortMethod);
기능은 아래를 참고하세요.
속성날짜 날짜 개체입니다. 이 객체는 0001부터 9999까지의 날짜를 저장할 수 있으며 밀리초(1/1000초)까지 정확할 수 있습니다. 내부적으로 날짜 객체는 1970년 1월 1일 자정부터 날짜 객체가 가리키는 날짜까지의 밀리초 수를 나타내는 정수입니다. 언급된 날짜가 1970년 이전이면 음수입니다. 모든 날짜와 시간은 시간대가 지정되지 않은 경우 "GMT"(그리니치 표준시)와 수치적으로 동일한 "UTC"(세계시) 시간대를 사용합니다.
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의 탄젠트를 반환합니다.
var d = new Date;이 메소드는 d를 날짜 객체로 만들고 초기 값은 현재 시간입니다. 초기 값을 사용자 정의하려면 다음을 사용할 수 있습니다.
var d = new Date(99, 10, 1); //1999년 10월 1일등. 가장 좋은 방법은 아래에 소개된 "방법"을 사용하여 시간을 엄격하게 정의하는 것입니다.
var d = new Date('1999년 10월 1일') //1999년 10월 1일
메서드
아래 "g/set[UTC]XXX"와 같이 여러 가지 메서드가 있는데, 이는 "getXXX" 메서드와 "setXXX" 메서드가 모두 있다는 의미입니다. "Get"은 특정 값을 가져오는 것이고 "set"은 특정 값을 설정하는 것입니다. "UTC" 문자가 있으면 획득/설정된 값이 UTC 시간을 기준으로 함을 의미하고, 문자가 없으면 현지 시간 또는 검색 기간의 기본 시간을 기준으로 함을 의미합니다.
설명이 없는 경우 메소드의 사용 형식은 "
속성
NaN 아까 말했잖아요.
Methods
eval() 괄호 안의 문자열을 표준 명령문이나 표현식으로 연산합니다.
isFinite() 괄호 안의 숫자가 "유한"(Number.MIN_VALUE와 Number.MAX_VALUE 사이)이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
isNaN() 대괄호 안의 값이 "NaN"이면 true를 반환하고 그렇지 않으면 false를 반환합니다.
parseInt() 괄호 안의 내용을 정수로 변환한 값을 반환합니다. 대괄호가 문자열이면 문자열 시작 부분의 숫자 부분이 정수로 변환되고, 문자로 시작하면 "NaN"이 반환됩니다.
parseFloat() 괄호 안의 문자열을 부동 소수점 숫자로 변환한 후 값을 반환합니다. 문자열 시작 부분의 숫자 부분이 문자로 시작하는 경우 부동 소수점 숫자로 변환됩니다. , "NaN"이 반환됩니다.
toString() 사용법:
함수 함수 이름([매개변수 집합]) {여기서 , 함수 뒤와 함수 끝에 사용되는 중괄호는 전체 함수에 한 문장만 있어도 생략할 수 없습니다.
...
[return[];]
...
}
function addAll(a, b, c) {이 예에서는 세 개의 매개변수(a, b, c)가 있는 "addAll"이라는 함수가 생성됩니다. 이 함수의 기능은 세 개의 숫자를 더한 결과를 반환하는 것입니다. 함수 외부에서 "var total = addAll(3, 4, 5);"를 사용하여 함수의 반환 값을 받습니다.
return a b c;
}
var total = addAll(3, 4, 5)
속성
인수 외부 프로그램이 함수를 호출할 때 지정된 매개변수를 반영하는 배열입니다. 사용법: 함수 내에서 직접 "인수"를 호출합니다.