- Object 객체
Java Script의 기본 자료형인 객체이다.
모든 타입을 받을 수 있는 특징이 있고 생성자 함수를 통해 만들 수 있다.
- Object 메소드
hasOwnProperty : 생성한 객체가 어떤 속성을 가지고 있는지 알 수 있다.
propertyIsEnumerable : 이 메소드는 Enumerable와 Nonenumerable과 관련이 있다.
Enumerable와 Nonenumerable는 열거 가능 여부를 의미하는데 이는 반복문에 영향을 끼치기 때문에
반복문 실행 가능 여부라고 생각하면 된다.
- toString
해당 객체의 속성들을 String으로 나열해준다. 보통 임의로 만들어 사용한다.
- Constructor
typeof는 new Number 객체 같은 클래스로 선언한 것은 비교할 수 없는데
Constructor은 이 문제를 해결해준다.
- Number(toFixed)
Number 클래스의 메소드인 toFixed는 숫자의 반올림 기능을 가지고 있다.
괄호 () 안에 숫자를 입력받아 자릿수를 정한다.
단, 반환된 반올림 값은 String 형으로 주의를 해야한다.
- HTML 관련 String 메소드
anchor : a태그로 포장, 감싸준다.
big : big 태그로 포장한다.
bold : 글씨 굵게
fontcolor : 폰트 색깔 변경
fontsize : 폰트 크기 변경
italics : 글자 기울여서 표현
link : 글씨에 링크달기
small : 글씨 작게
strike : 글씨 취소선(중간에 사선)
sub : 아래 첨자
sup : 위 첨자
- Date 객체
날짜 데이터를 관리 할 수 있는 객체
- Date 메소드
전부 현재 기준
getFullYear : 년도 반환
getMonth : 월 반환
getDate : 일 반환
getDay : 요일 반환()
getHours : 시간 반환
getMinutes : 분 반환
getSeconds : 초 반환
getMilliseconds : 밀리초 반환
getTimezoneOffset : GMT 시간 기준 현재 지역이 몇 시간 차이나는지 반환
getTime : 1970년 1월 1일 0시 0분 00초 기준으로 지난 밀리세컨 단위의 시간을 리턴
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style type="text/css"> .area{ height: 150px; background: lightgray; border: 1px solid black; } .area-big{ height: 400px; background: lightgray; border: 1px solid black; } </style> </head> <body> <h1>내장객체</h1> <h3>object 객체</h3> <p>자바스크립트의 가장 기본적인 내장 객체이다.<br> Object 생성자 함수를 통해 만들어진 인스턴스이다.</p> <button onclick="test1();">실행확인</button> <script type="text/javascript"> function test1() { var obj1 = {}; var obj2 = new Object(); console.log(obj1 instanceof Object); console.log(obj2 instanceof Object); } </script> <br> <h3>Object 객체의 기본 메소드</h3> <h4>hasOwnProperty()와 propertyIsEnumerable()메소드</h4> <button onclick="test1();">실행확인</button> <div id="area1" class="area"></div> <script type="text/javascript"> function test1() { var object = {age:20}; var area1 = document.getElementById("area1"); area1.innerHTML += "name속성을 가지고 있니? : " + object.hasOwnProperty('name') + "<br>"; area1.innerHTML += "age속성을 가지고 있니? : " + object.hasOwnProperty('age') + "<br>"; area1.innerHTML += "반복문을 사용할 수 있니? : " + object.propertyIsEnumerable('age') + "<br>"; area1.innerHTML += "반복문을 사용할 수 있니? : " + object.propertyIsEnumerable('name') + "<br>"; } </script> <br> <h4>toString() 메소드</h4> <button onclick="test3();"> 실행확인</button> <div id="area2" class="area"></div> <script type="text/javascript"> function test3() { var student = { name:'이르므', age:20, toString:function(){ return "name : " + this.name + "\nage : " + 20; } } //alert(student.toString()); alert(student); } </script> <hr> <h4>constructor 속성</h4> <p>자료형 검사할 때 유용하게 사용할 수 있다.</p> <button onclick="test4();">실행확인</button> <div id="area3" class="area"></div> <script type="text/javascript"> function test4() { var num1 = 120; var num2 = new Number(120); console.log("num1의 자료형 : " + typeof(num1)); console.log("num2의 자료형 : " + typeof(num2)); console.log("num1 + num2 : " + (num1 + num2)); console.log(num2); var area3 = document.getElementById("area3"); if(typeof(num1) == 'number'){ area3.innerHTML += "num1은 숫자입니다.<br>"; }else { area3.innerHTML += "num1은 숫자가 아닙니다.<br>"; } if(typeof(num2) == 'number'){ area3.innerHTML += "num2은 숫자입니다.<br>"; }else { area3.innerHTML += "num2은 숫자가 아닙니다.<br>"; } if(num1.constructor == Number){ area3.innerHTML += "다시 봐도 num1은 숫자입니다.<br>"; }else { area3.innerHTML += "아무리 봐도 num1은 숫자가 아닙니다.<br>"; } if(num2.constructor == Number){ area3.innerHTML += "다시 보니 num2은 숫자입니다.<br>"; }else { area3.innerHTML += "아무리 봐도 num2은 숫자가 아닙니다.<br>"; } } </script> <hr> <h3>Number 객체</h3> <button onclick="test5();">실행확인</button> <p>toFixed() 테스트</p> <div id="area6" class="area"></div> <script type="text/javascript"> function test5() { var num1 = 123.456789; var num2 = 123; var area6 = document.getElementById("area6"); area6.innerHTML += "num1의 기본값 : " + num1 + "<br>"; area6.innerHTML += "num2의 기본값 : " + num2 + "<br>"; area6.innerHTML += "num1.toFixed(1) : " + num1.toFixed(1) + "<br>"; area6.innerHTML += "num1.toFixed(4) : " + num1.toFixed(4) + "<br>"; area6.innerHTML += "num2.toFixed(4) : " + num2.toFixed(4) + "<br>"; area6.innerHTML += "num1.toFixed(4) + num2.toFixed(4) : " + (num1.toFixed(4) + num2.toFixed(4)) + "<br>"; // toFixed는 대상을 지정한 자리수 기준으로 반올림 해준다. // 단, toFixed의 return 자료형은 string임을 주의하자 area6.innerHTML += "그럼 자료형은? : " + typeof(num1.toFixed(1)) + "<br>"; } </script> <hr> <h3>String 객체의 HTML 관련 메소드</h3> <p>String 객체의 메소드는 크게 기본메소드와 HTML 관련 메소드로 구분할 수 있다.</p> <button onclick="test6();">실행확인</button> <div id="area7" class="area-big"></div> <script type="text/javascript"> function test6() { var str = "javascript"; var area7 = document.getElementById("area7"); area7.innerHTML += "기본값 : " + str + "<br>"; // anchor() : a태그로 포장해줌 area7.innerHTML += "anchor() : " + str.anchor() + "<br>"; // big() : big태그로 포장해줌 area7.innerHTML += "big() : " + str.big() + "<br>"; // bold() : bold 글자 굵게, b태그 area7.innerHTML += "bold() : " + str.bold() + "<br>"; // fontcolor() : 글자 색깔 변경 area7.innerHTML += "fontcolor() : " + str.fontcolor("red") + "<br>"; // fontsize() : 글자 크기 변경 area7.innerHTML += "fontsize() : " + str.fontsize(20) + "<br>"; // italics() : 글씨 기울게 area7.innerHTML += "italics() : " + str.italics() + "<br>"; // link() : 글씨에 링크달기 area7.innerHTML += "link() : " + str.link("https://www.naver.com") + "<br>"; // small() : 글씨 작게 area7.innerHTML += "small() : " + str.small() + "<br>"; // strike() : 글씨 취소선 area7.innerHTML += "strike() : " + str.strike() + "<br>"; // sub() : 아래 첨자 area7.innerHTML += "sub() : " + str.sub() + "<br>"; // sup() : 위 첨자 area7.innerHTML += "sup() : " + str.sup() + "<br>"; } </script> <hr> <h3>Date 객체</h3> <p>날짜를 관리하는 객체</p> <button onclick="test7();">실행확인</button> <div id="area8" class="area"></div> <script type="text/javascript"> function test7(){ var area8 = document.getElementById("area8"); //GMT 시간, 런던 기준의 그리니치 시간 var date1 = new Date(); var date2 = new Date('November 14'); var date3 = new Date('November 14, 2018'); var date4 = new Date('November 14, 2018, 14:41:30'); area8.innerHTML += "date1 : " + date1 + "<br>"; area8.innerHTML += "date2 : " + date2 + "<br>"; area8.innerHTML += "date3 : " + date3 + "<br>"; area8.innerHTML += "date4 : " + date4 + "<br>"; //UTC 시간 var date5 = new Date(2018, 10, 14); var date6 = new Date(2018, 10, 14, 14, 46, 45); var date7 = new Date(2018, 10, 14, 14, 46, 45, 1); area8.innerHTML += "date5 : " + date5 + "<br>"; area8.innerHTML += "date6 : " + date6 + "<br>"; area8.innerHTML += "date7 : " + date7 + "<br>"; } </script> <hr> <h3>Date 객체의 메소드</h3> <button onclick="test8();">실행확인</button> <div id="area9" class="area-big"></div> <script type="text/javascript"> function test8() { var area9 = document.getElementById("area9"); var date = new Date(); area9.innerHTML += "getFullYear() : " + date.getFullYear() + "<br>"; area9.innerHTML += "getMonth() : " + (date.getMonth() + 1) + "<br>"; area9.innerHTML += "getDate() : " + date.getDate() + "<br>"; area9.innerHTML += "getDay() : " + date.getDay() + "<br>"; area9.innerHTML += "getHours() : " + date.getHours() + "<br>"; area9.innerHTML += "getMinutes() : " + date.getMinutes() + "<br>"; area9.innerHTML += "getSeconds() : " + date.getSeconds() + "<br>"; area9.innerHTML += "getMilliseconds() : " + date.getMilliseconds() + "<br>"; area9.innerHTML += "getTimezoneOffset() : " + date.getTimezoneOffset() + "<br>"; // 1970년 1월 1일 0시 0분 00초 기준으로 지난 밀리세컨 단위의 시간을 리턴한다. area9.innerHTML += "getTime() : " + date.getTime() + "<br>"; var date2 = new Date(new Date(2018, 10, 14, 15, 10, 00, 99).getTime()); console.log(date2); // 날짜 사이의 간격 구하기 var now = new Date(); var start = new Date('August 13, 2018'); var interval = now.getTime() - start.getTime(); interval = Math.floor(interval / (1000 * 60 * 60 * 24)); alert("간격은 " + interval + "일!"); // 2019년 3월 14일 까지 남은 날짜는? now = new Date('March 14, 2019'); start = new Date(); interval = now.getTime() - start.getTime(); interval = Math.floor(interval / (1000 * 60 * 60 * 24)); alert("간격은 " + interval + "일!"); } </script> </body> </html>