13. JavaScript - 내장 객체
- 혼자서 JavaScript를 공부하고 실습하면서 작성한 글입니다.
- 처음 공부하고 있어서 부족하거나 잘못된 정보가 있을 수 있습니다. (2021.06.25 금)
- 조금 더 자세히 알게 되거나 수정할 부분이 있으면 바로바로 수정하겠습니다.
자바스크립트는 객체 기반 언어이다. 객체는 기능(Method) 또는 속성(Properties)을 가지고 있다.
자바스크립트의 객체는 크게 내장객체, 브라우저 객체 모델(BOM : Browser Object Model), 문서 객체 모델(DOM : Document Object Model)로 나눌 수 있다.
내장 객체
-
표준 내장 객체(Standard Built-in Object)는 자바스크립트가 기본적으로 가지고 있는 객체들을 의미.
-
내장 객체를 생성하는 기본형은 다음과 같다
var myObject = new Object(); myObject.name = "Hello"
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<script>
var number1 = 123;
var number2 = new Number(123);
document.write(number1 + " number1의 타입은? " + typeof number1,"<br>"); // 123 number1의 타입은? number
document.write(number2 + " number2의 타입은? " + typeof number2,"<br>"); // 123 number2의 타입은? object
</script>
</body>
</html>
1. Date Object (날짜 정보 객체)
- 현재 날짜나 시간관련 정보를 제공 받거나 특정 날짜에 대한 정보를 받고 싶을 때 사용
날짜 정보를 가져올 때(GET) | 날짜 정보를 수정할 때 (SET) | ||
---|---|---|---|
getFullYear() | 연도정보를 가져옴 | setFullYear() | 연도 정보만 수정 |
getMonth() | 월 정보를 가져옴 (현재 월 -1) | setMonth() | 월 정보만 수정(월 -1) |
getDate() | 일 정보를 가져옴 | setDate() | 일 정보만 수정 |
getDay() | 요일 정보를 가져옴(일:0~토:6) | 요일은 날짜를 바꾸면 자동으로 바뀌므로 setDay()는 없음 | |
getHours() | 시 정보를 가져옴 | setHours() | 시 정보만 수정 |
getMinutes() | 분 정보를 가져옴 | setMinutes() | 분 정보만 수정 |
getSeconds() | 초 정보를 가져옴 | setSeconds() | 초 정보만 수정 |
getMilliseconds() | 밀리초 정보를 가져옴(1/1000초) | setMilliseconds() | 밀리초 정보만 수정 |
getTime() | 1970년부터 경과된 시간을 밀리초로 표기함 | setTime() | 1970년부터 경과된 시간을 밀리초로 수정 |
toGMTString() | GMT 표준 표기방식으로 문자형 데이터로 반환 | toLocalString() | 운영 시스템 표기 방식으로 문자형 데이터로 반환 |
밀리초(msc) 로 1일 계산법 1초 = 1000(밀리초)
1000(밀리초) X 60 X 60 X 24 = 86,400,000(msc)
1초 =1000(msc)
1분(60초)=
1000 * 60
// 60,000(msc)1시간(60분) =
1000 * 60 *60
//3,6000,000(msc)1일(
60분 * 24
)=1000 * 60 * 60 * 24
//86,400,000(msc)
<!DOCTYPE html>
<html>
<head>
<title>예제1</title>
</head>
<body>
<script>
var t = new Date();
var nowMonth = t.getMonth();
var nowDate = t.getDate();
var nowDay = t.getDay();
document.write("현재 월 : " + (nowMonth + 1) + "<br>");
document.write("현재 일 : " + nowDate + "<br>");
document.write("현재 요일 : " + nowDay + "<br>");
var m = new Date(2002,4,31); // 2002(5.31)월드컵 날짜객체 생성
var theMonth = m.getMonth(); // 날짜 객체에서 월
var theDate = m.getDate(); // 날짜 객체에서 일
var theDay = m.getDay(); // 날짜 객체에서 요일
document.write("2002 월드컵 몇 월 : " + theMonth + "<br>");
document.write("2002 월드컵 몇 일 : " + theDate + "<br>");
document.write("2002 월드컵 무슨 요일 : " + theDay + "<br>");
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>예제2</title>
</head>
<body>
<script >
var t = new Date(); // 오늘 날짜 개체를 생성
var nowYear = t.getFullYear(); // 오늘 날짜의 연도 정보
var theDate = new Date(nowYear,11,31); //현재 연도에 12월 31 날짜 객체를 생성
var diffDate = theDate - t; // 연말까지 남은 기간 = 연말 날짜 - 현재 날짜
// 밀리초를 일로 계산
var result = Math.ceil( diffDate / (1000 * 60 * 60 * 24) );
// 남은 일수를 출력
document.write("현재일로 부터 올해 말일까진 " + result + " 일 남았습니다.");
</script>
</body>
</html>
2. Number Object (숫자 객체)
-
자바스크립트를 이용하여 숫자를 표기할 때, 표현 가능한 수의 속성과 숫자 표기법에 대한 메서드를 제공한다.
-
Number 객체의 속성
속성 | 설명 |
---|---|
MAX_VALUE | 표현 가능한 가장 큰 수 |
MIN_VALUE | 표현 가능한 가장 작은 수 |
POSITIVE_INFINITY | 무한대 수 표기 |
NEGATIVE_INFINITY | 음의 무한대 수 표기 |
NaN | 숫자가 아닌 경우 표기 |
- Number 객체의 메소드
메소드 | 설명 |
---|---|
toExponential(n) | 지수 표기법으로 소수점 n자리만큼 문자형 데이터로 반환 |
toFixed(n) | 소수점 n자리만큼 반올림하여 문자형 데이터로 반환 |
toPrecision(n) | 유효 숫자 n의 개수만큼 반올림하여 문자형 데이터로 반환 |
toString() | 숫자형 데이터를 문자형 데이터로 반환 |
valueOf() | 객체의 원래 값을 반환 |
parseInt(n) | 데이터를 정수로 변환하여 반환 |
parseFloat(n) | 데이터를 실수로 변환하여 반환 |
<!DOCTYPE html>
<html>
<head>
<title>예제</title>
</head>
<body>
<script>
document.write("표현 가능한 가장 큰 수 : " + Number.MAX_VALUE, "<br>");
// 표현 가능한 가장 큰 수 : 1.7976931348623157e+308
document.write("표현 가능한 가장 작은 수 : " + Number.MIN_VALUE, "<br>");
// 표현 가능한 가장 작은 수 : 5e-324
document.write("숫자가 아닌경우의 표기 : " + Number.NaN, "<br>");
// 숫자가 아닌경우의 표기 : NaN
document.write("무한대 수 표기 : " + Number.POSITIVE_INFINITY, "<br>");
// 무한대 수 표기 : Infinity
document.write("음의 무한대 수 표기 : " + Number.NEGATIVE_INFINITY, "<br>");
// 음의 무한대 수 표기 : -Infinity
var num1=3.456789;
var num2=700000;
var num3="30.5px";
var num4=40;
document.write(num2.toExponential(1), "<br>"); // 7.0e+5
document.write(num1.toFixed(2), "<br>"); // 3.46
document.write(num1. toPrecision(2), "<br>"); // 3.5
document.write(num1.toString(), "<br>"); // 3.456789
document.write(num4.valueOf(), "<br>"); // 40
document.write(parseInt(num3) + num4, "<br>"); // 70
document.write(parseFloat(num3) + num4, "<br>"); // 70.5
</script>
</body>
</html>
3. Math Object (수학 객체)
- 수학과 관련한 기능과 속성을 제공
종류 | 설명 |
---|---|
Math.abs(숫자) | 숫자의 절댓값을 반환 |
Math.max(숫자1,숫자2,숫자3) | 숫자들 중 가장 큰 값 반환 |
Math.min(숫자1,숫자2,숫자3) | 숫자들 중 가장 작은 값 반환 |
Math.pow(숫자,제곱값) | 숫자의 거듭 제곱한 값을 반환 |
Math.random() | 0 ~ 1 사이의 난수를 반환 |
Math.round(숫자) | 소수점 첫째 자리에서 반올림하여 정수 반환 |
Math.ceil(숫자) | 소수점 첫째 자리에서 올림을 해서 정수를 반환 |
Math.floor(숫자) | 소수점 첫째 자리에서 버림을 해서 정수를 반환 |
Math.sqrt(숫자) | 숫자의 제곱근 값을 반환 |
Math.PI | 원주율 상수를 반환 |
<!DOCTYPE html>
<html>
<head>
<title>예제</title>
</head>
<body>
<script>
var num = 2.1234;
var maxNum = Math.max(10, 5, 8, 30); // 최댓값 반환
var minNum = Math.min(10, 5, 8, 30); // 최솟값 반환
var roundNum = Math.round(num); // 반올림 값을 반환
var floorNum = Math.floor(num); // 소수점 내림 후 반환
var ceilNum = Math.ceil(num); // 소수점 올림 후 반환
var rndNum = Math.random(); // 0~1 사이 난수를 발생
var piNum = Math.PI; // Math.PI는 원주율 상수를 반환
document.write(maxNum,"<br>"); // 30
document.write(minNum,"<br>"); // 5
document.write(roundNum,"<br>"); // 2
document.write(floorNum,"<br>"); // 2
document.write(ceilNum,"<br>"); // 3
document.write(rndNum,"<br>"); // 0.17840117319839943
document.write(piNum,"<br>"); // 3.141592653589793
</script>
</body>
</html>
4. Array Object (배열 객체)
- 배열은 나눌 배와 열거할 열을 사용하여 뜻 그대로 하나의 저장소를 나눠서 데이터를 열거하라는 의미를 담고 있다.
// 배열 생성 방식1
var d = new Array();
d[0] = 30;
d[1] = “홍길동”;
d[2] = true;
// 배열 생성 방식2
var d = new Array(30, “홍길동”, true);
// 배열 생성 방식3
var d = [30, “홍길동”, true];
종류 | 설명 |
---|---|
join(연결문자) | 배열 객체에 데이터를 연결 문자 기준으로 1개의 문자형 데이터로 반환 |
reverse() | 배열 객체에 데이터의 순서를 거꾸로 바꾼 후 반환 |
sort() | 배열 객체에 데이터를 오름차순으로 정렬 |
slice(index1, index2) | 배열 객체에 데이터 중 원하는 인덱스 구간만큼 잘라서 배열 객체로 가져온다 |
splice() | 배열 객체에 지정 데이터를 삭제하고 그 구간에 새 데이터를 삽입할 수 있다 |
concat() | 2개의 배열 객체를 하나로 결합 |
pop() | 배열에 저장된 데이터 중 마지막 인덱스에 저장된 데이터를 삭제 |
push(new data) | 배열 객체에 마지막 인덱스에 새 데이터를 삽입 |
shift() | 배열 객체에 저장된 데이터 중 첫 번째 인덱스에 저장된 데이터를 삭제 |
unshift(new data) | 배열 객체의 첫 번째 인덱스에 새 데이터를 삽입 |
length | 배열에 저장된 총 데이터의 갯수를 반환 |
5. String Object (문자 객체)
- 문자형 데이터를 객체로 취급한다.
종류 | 설명 |
---|---|
charAt(index) | 문자열에서 인덱스 번호에 해당하는 문자를 반환 예) var str ="web he she"; str.charAt(2); "b"를 반환함 |
indexOf(“찾을 문자”) | 문자열에서 왼쪽부터 찾을 문자와 일치하는 문자를 찾아 최초로 일치하는 문자의 인덱스 번호를 반환. 만일 찾는 문자가 없으면 –1을 반환 예) var str="web he she he"; str.indexOf("he"); 4를 반환함 |
lastIndexOf(“찾을 문자”) | 문자열에서 오른쪽에서부터 찾을 문자와 일치하는 문자를 찾아 최초로 일치하는 인덱스 번호를 반환. 만일 찾는 문자가 없으면 –1을 반환.예) var str ="web he she he"; str.lastIndexOf("he"); 11을 반환함 |
match(“찾을 문자”) | 문자열에서 왼쪽부터 찾을 문자와 일치하는 문자를 찾아 최초로 찾은 문자를 반환 만일 찾는 문자가 없으면 null을 반환 예) var str="web he she he"; str.match("body"); null을 반환함 |
replace(“바꿀문자”,“새문자”) | 문자열에서 왼쪽부터 바꿀 문자와 일치하는 문자를 찾아 최초로 찾은 문자를 새 문자로 치환 예) var str="web he she"; str.replace("web","html"); "html he she"를 반환함 |
search(“찾을 문자”) | 문자열에서 왼쪽부터 찾을 문자와 일치하는 문자를 찾아 최초로 일치하는 인덱스 번호를 반환예) var str="web he she"; str.search("he"); 4를 반환함 |
slice(a,b) | a개의 문자를 자르고 b번째 이후에 문자를 자른 후 남은 문자를 반환합니다.예) var str ="hello javascript"str.slice(3,7); “lo j”를 반환함str.slice(3,7);은 문자열에서 3글자 “hel”까지 자르고 7번째 이후 “j” 이후부터 “avascript”를 자른 후 나머지 “lo j”를 반환합니다.예) var str ="hello javascript" str.slice(3,-3); “llo javascr”를 반환함. 여기에서 –1은 뒤에서부터 1글자를 가리킵니다. |
substring(a,b) | a인덱스부터 b인덱스 이전 구간의 문자를 반환합니다.예) var str = "hello javascript" str.substring(3, 7); "lo j"를 반환함 var str = "hello javascript" str.substring(3,-3); "hel"0 반환함여기에서 –3은 인덱스 0을 가리킵니다. 그러므로 0부터 인덱스 3이전 구간의 문자를 구해옵니다. |
substr(a, 문자 개수) | 문자열에 a 인덱스부터 지정한 문자 개수만큼 문자열을 반환합니다.예) var str ="hello javascript" str.substring(3,2); "lo" 를 반환함 str.str(3,2); 은 문자열에서 인덱스 3인 "l"부터 2글자를 가져와서 "lo"가 반환됩니다. |
split(“문자”) | 지정한 문자를 기준으로 문자 데이터를 나누어 배열에 저장하여 반환합니다. 예) var str ="webkmobilek2002"; var arr=str.split("k"); arr; |
toLowerCase() | 문자열에서 영문 대문자를 모두 소문자로 변환.예) var str ="ABC"; str.toLowerCase(); "abc"를 반환함 |
toUpperCase() | 문자열에서 영문 소문자를 모두 대문자로 변환.예) var str ="abc"; str.toUpperCase(); "ABC"를 반환함 |
length | 문자열에서 문자의 개수를 반환합니다.예) var str ="hello welcome"; str.length13을 반환함 |
concat(“새로운 문자”) | 문자열에서 새로운 문자열을 결합.예) var str ="hello"; str.concat("web");"hello web"을 반환함 |
charCodeAt(“찾을 문자”) | 찾을 문자의 아스키 코드 값을 반환 str="A";예) str.charCodeAt("A"); // 6565를 반환함 |
fromCharCode(아스키 코드 값) | 아스키 코드 값에 해당하는 문자를 반환예)String.fromCharCode(65);"A"를 반환함 |
trim() | 문자의 앞 또는 뒤에 공백 문자열을 삭제.(" hello " -> "hello")예) str ="hello "; str.trim();공백이 제거된 “hello”를 반환함 |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>연습</title>
</head>
<body>
<script>
/*변수 t에 문자형 데이터를 저장했다는 것은 t에 문자 객체를 참조시킨 것과 같다.*/
var t="Hello Thank you good luck to you";
document.write(t.charAt(16),"<br>"); // g
document.write(t.indexOf("you"),"<br>"); // 12
document.write(t.indexOf("you",16),"<br>"); // 29
document.write(t.lastIndexOf("you"),"<br>"); //29
document.write(t.lastIndexOf("you",25),"<br>"); //12
document.write(t.match("luck"),"<br>"); // luck
document.write(t.search("you"),"<br>"); // 12
document.write(t.substr(21,4),"<br>"); // luck
document.write(t.substring(6,12),"<br>"); // Thank
document.write(t.replace("you","me"),"<br>"); // Hello Thank me good luck to you
document.write(t.toLowerCase(),"<br>"); // hello thank you good luck to you
document.write(t.toUpperCase(),"<br>"); // HELLO THANK YOU GOOD LUCK TO YOU
document.write(t.length,"<br>"); // 32
var s=t.split(" ");
document.write(s[0],"<br>"); // Hello
document.write(s[4],"<br>"); // luck
</script>
</body>
</html>
6. 정규 표현 객체 (RegExp)
- 입력 요소에 데이터를 규칙에 맞게 작성했는지 판단해서 알려주는 객체
var myRegExp = new RegExp(패턴, 검색옵션)
- 정규 표현 검색 옵션
종류 | 설명 |
---|---|
* | 0회 이상 일치하는 문자를 검사할 때 사용합니다. |
+ | 1회 이상 일치하는 문자를 검사할 때 사용합니다. |
i | 찾는 문자가 영문일 경우 대 소문자를 구분하지 않습니다. |
? | 0회 또는 1회, 규칙에 맞는 문자가 있는지 검사합니다. |
g | 옵션에 g가 없으면 데이터의 왼쪽부터 규칙에 일치하는 문자 한 개만 찾지만, g를 넣으면 규칙에 맞는 모든 문자를 찾습니다. |
m | 데이터의 행이 바뀌어도 규칙에 맞는 문자를 찾습니다. |
$ | 문자열 끝부분에 규칙에 맞는 문자를 찾습니다. |
^ | 문자열 앞에서부터 규칙에 일치하는 문제를 찾습니다.또는 부정을 나타냅니다. |
\d | 숫자 하나를 찾습니다. |
\D | 숫자가 아닌 문자 하나를 찾습니다. |
\s | 공백 문자(스페이스)를 찾습니다. |
[0-9][A-Z][a=z] | 숫자, 대문자 영문, 소문자 영문을 찾습니다. |
\w | 알파벳, 숫자, 밑줄(_)기호를 찾습니다. |
\W | 알파벳, 숫자, 밑줄(_)기호를 제외한 문자를 찾습니다. |
a|b | a또는 b인지 검사할 때 사용합니다. |
- 정규 표현 객체 메서드
종류 | 설명 |
---|---|
test() | 지정한 규칙에 맞는 단어가 있으면 true 값을 반환 |
exec() | 지정된 규칙에 맞는 단어가 있으면 해당 단어를 반환 |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>연습</title>
</head>
<body>
<script>
var str = "Html Css Jquery ";
var reg1 = /css/; // var reg1 = new RegExp("css")
/*변수 str에 데이터가 reg1에 정규표현 형식을 잘지켰으면 true를 반환하고 안지켰을 경우엔 false를 반환*/
var result_1 = reg1.test(str);
document.write(result_1,"<br>"); // false
/*옵션에 'i'를 입력하면 영문 대소문자를 구분하지 않습니다*/
var reg2 = /css/i; // var reg2 = new RegExp("css","i")
var result_2 = reg2.test(str);
document.write(result_2,"<br>"); // true
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>예제2</title>
</head>
<body>
<script>
var userName = prompt("당신의 이름은?");
reg1=/^[가-힣]{2,5}$/;
while(true){
if(reg1.test(userName)) break;
alert("이름 입력 형식이 잘못되었습니다!");
userName=prompt("당신의 이름은?");
}
var userCell=prompt("당신의 핸드폰 번호는?");
reg2=/^(010|016|011)\d{3,4}\d{4}$/;
while(true){
if(reg2.test(userCell)) break;
alert("핸드폰 입력 형식이 잘못되었습니다!");
userCell=prompt("당신의 핸드폰 번호는?");
}
var userEmail=prompt("당신의 이메일은?");
reg3=/^\w{5,12}@[a-z]{2,10}[\.][a-z]{2,3}[\.]?[a-z]{0,2}$/;
while(true){
if(reg3.test(userEmail)) break;
alert("이메일 입력 형식이 잘못되었습니다!");
userEmail=prompt("당신의 이메일은?");
}
document.write(userName,"<br>");
document.write(userCell,"<br>");
document.write(userEmail,"<br>");
</script>
</body>
</html>
7. Object
8. Function
9. Boolean
- Boolean 객체는 불리언 값을 감싸고 있는 객체이다
Author And Source
이 문제에 관하여(13. JavaScript - 내장 객체), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hih0327/13.-JavaScript-내장-객체저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)