기본적인 객체 생성과 호출 예제
let sound= new Object;
sound.volumn="20";
sound.eq="pop";
document.write(sound.eq+"<br>");
sound.info= function(){
document.write("sound의 볼륨 : "+this.volumn,"<br>");
document.write("sound의 이퀄라이저 : "+this.eq,"<br>");
}
sound.info();
내장 객체의 종류
- 내장 객체 = 자바스크립트 엔진에 내장된 객체
- 문자 / 날짜 / 배열 / 수학 등이 있음
날짜 객체
let today= new Date();
let thisYear= today.getFullYear();
let theDate= new Date(thisYear,11,31);
let diffDate= theDate.getTime()-today.getTime();
let result= Math.ceil(diffDate / (60*1000*60*24));
document.write("올해 말일 D-DAY : "+result+"일 남았습니다.");
수학 객체
- 산술 연산자로 계산이 가능한 더하기, 빼기, 곱하기, 나누기, 나머지 값 구하기 이외에도 모든 수학적인 계산을 할 수 있음
수학 객체 메서드
- 숫자의 절대값 반환 : Math.abs(숫자)
- 숫자 중 가장 큰 값 반환 : Math.max(숫자1, 숫자2, 숫자3, 숫자4)
- 숫자 중 가장 작은 값 반환 : Math.min(숫자1, 숫자2, 숫자3, 숫자4)
- 숫자의 거듭제곱값 반환 : Math.pow(숫자, 제곱값)
- 0~1사이의 랜덤한 숫자 반환 : Math.random()
- 소수점 첫째자리에서 반올림한 정수 반환 : Math.round(숫자)
- 소수점 첫째자리에서 무조건 올림한 정수 반환 : Math.ceil(숫자)
- 소수점 첫째자리에서 무조건 내림한 정수 반환 : Math.floor(숫자)
- 숫자의 제곱근값 반환 : Math.sqrt(숫자)
- 원주율 상수 3.14를 반환 : Math.PI
수학 예시 1 - 소수점 처리
let num= 4.5947;
let roundNum= Math.round(num),
ceilNum= Math.ceil(num),
floorNum= Math.floor(num);
document.write("첫째자리 반올림은 "+roundNum+"<br>");
document.write("첫째자리 무조건 올림은 "+ceilNum+"<br>");
document.write("첫째자리 무조건 내림은 "+floorNum);
수학 예시 2 - 랜덤 숫자 범위 발생
let randomNum= Math.ceil(Math.random()*4);
document.write(randomNum+"<br>");
if(randomNum==1){
document.write("1이 나왔습니다.")
}
if(randomNum==2){
document.write("2가 나왔습니다.")
}
if(randomNum==3){
document.write("3이 나왔습니다.")
}
if(randomNum==4){
document.write("4가 나왔습니다.")
}
- Math.random을 Math.ceil로 감싼 것은 1부터의 정수를 발생시키기 위한 것이고, 4를 곱하면 1부터 4까지의 난수가 발생
- 1부터가 아니라 0부터로 하려면 Math.floor를 사용
- 특정한 숫자를 최소값으로 하려면, Math.ceil(Math.random)*최대값에서 최소값을 빼고 1을 더한 값)+최소값; 으로 사용
배열 객체
배열 생성, 불러오기
let arr= new Array();
arr[0]=1;
arr[1]=2;
arr[2]=3;
document.write(arr[0]);
document.write("<br><br>");
let arr2= new Array(4,5,6)
for(let i=0; i<arr2.length; i++){
document.write(arr2[i]);
}
document.write("<br><br>");
let arr3= [7,8,9];
for(let k=0; k<2; k++){
document.write(+arr3[k]);
}
배열 객체 메서드
- 특정 문자로 연결된 1개의 문자형 데이터 반환 : join("연결할 문자")
- 데이터의 순서롤 거꾸로 바꿔서 반환 : reverse()
- 데이터를 오름차순으로 정렬 : sort()
- 데이터를 원하는 인덱스 구간만큼 잘라서 배열 객체로 가져오기 : slice(인덱스 번호, 인덱스 번호)
- 2개의 배열을 하나로 결합 : concat()
- 마지막 인덱스 데이터 삭제 : pop()
- 마지막 인덱스에 새 데이터 삽입 : push(새 데이터)
- 첫번째 인덱스 데이터 삭제 : shift()
- 맨 앞 인덱스에 새 데이터 삽입 : unshift(새 데이터)
- 배열에 저장된 총 데이터의 개수 반환 : length
문자열 객체
문자열 객체 생성
let munja1= new String("문자열 객체의 내용입니다.");
document.write(munja1+"<br>")
let munja2= "이렇게 그냥 바로 써도 문자열 객체가 됩니다.";
document.write(munja2)
문자열 객체 메서드
- 인덱스 번호에 해당하는 문자를 반환 : charAt(인덱스 번호)
- 왼쪽부터 문자를 검색해 가장 먼저 일치하는 인덱스 번호 반환 : indexOf("검색할 문자") 또는 search("검색할 문자")
- 오른쪽부터 문자를 검색해 가장 먼저 일치하는 인덱스 번호 반환 : lastIndexOf("검색할 문자")
- 왼쪽부터 문자를 검색해 가장 먼저 일치하는 문자 반환 : match("찾을 문자")
- 왼쪽부터 찾을 문자를 찾아 가장 먼저 찾은 문자를 새 문자와 바꾸기 : replace("검색할 문자","새로 바꿀 문자")
- a지점부터 b지점까지 문자 또는 인덱스 번호로 문자 반환 : 전자는 slice(a,b) 후자는 substring(a,b)
- a지점부터 원하는 문자수만큼 반환 : substr(a, 문자수)
- 지정한 문자를 기준으로 문자를 나눠 배열로 반환 : split("지정할 문자")
- 알파벳을 모두 소문자로 바꾸기 : toLowerCase
- 알파벳을 모두 대문자로 바꾸기 : toUpperCase
- 문자열의 문자수 반환 : length
- 문자열에 새 문자열 결합 : concat("새 문자열")
- 문자 앞 뒤 공백 제거 : trim()
문자열 객체 예시 1 - 유효성 검사
let userEmail= prompt("이메일 주소를 입력해주세요","");
let arrURL= ["co.kr","com","net","or.kr","go.kr"];
let check1= false;
let check2= false;
if(userEmail.indexOf("@")>0){check1=true;}
for(let i=0; i<arrURL.length; i++){
if(userEmail.indexOf(arrURL[i])>0){
check2= true;
}
}
if(check1&&check2){
document.write("정상적으로 입력되었습니다. "+userEmail);
}
else{
alert("이메일 형식이 잘못되었으니 다시 입력해주세요.");
}
느낀점
- 아직까지는, 기초 단계라서 내장 객체 관련과 부분은 상대적으로 쉽게 다가오는 것 같다.
- 이후에 배울 브라우저 객체 모델(BOM)과 문서 객체 모델(DOM)과 같은 경우는 다른 언어에서 배운 적 없기 때문에, 빨리 만나보고 싶다.
참고
https://cucat.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EA%B0%9D%EC%B2%B4-%EC%82%AC%EC%9A%A9%EB%B2%95-%ED%95%B5%EC%8B%AC-%EC%A0%95%EB%A6%AC