프론트

JavaScript 객체, 배열, 내장 객체, 브라우저 객체

짱코딩러 2022. 8. 31. 10:21
1.객체 생성
  a.객체 변수로 객체 생성
  b.배열 객체 생성
  c.연관 배열
  d.2차원 배열
2.내장 객체
  a.Array 객체
  b.Date 객체
  c.Math 객체
3.브라우저 관련 객체

 

객체 생성

 

객체 변수로 객체 생성

var car = {
    name : "Sonata",		//속성
    speed : 100,
    color : "white",
    door : 4,
    start : funtion() {		//메소드
    	return this.speed+10;
    }
};

var exam = new Object();
exam.kor = 30;
exam.eng = 40;
exam.math = 50;

접근 방법

객체명.속성명
객체명['속성명']
car.name
car['speed']

 

 

배열 객체 생성

 

//초깃값 있을 때
var 배열명 = [원소1, 원소2, 원소3, ...];
var 배열명 = Array(원소1, 원소2, 원소3, ...);

//초깃값 없을 때(n을 비워두어 크기를 지정하지 않을수도 있음)
var 배열명 = new Array(n);
var 배열명 = [n]

 

배열 객체 생성 확인 방법

typeof 배열명                → object

Array.isArray(배열명)    → true

배열명 instanceof Array→ true

<script>
    var city=new Array("Seoul","Busan","Incheon"); 
    function printArr() {
        if(city instanceof Array) {		//true면
            document.write("배열 객체가 생성되었습니다.<p/>");
            var i; 
            for(i=0; i<city.length; i++) {
                document.write("배열 데이터 ["+ i + "] = " + city[i] + "<br>");  
            }  
        }
        else {		//false면
            document.write("배열 객체가 아닙니다.<br>"); 
            document.write("데이터 : " + city + "<br>"); 
        }
    }
    printArr();   
    document.write("<p/> city 변수 타입 : " + typeof city + "<br>");  
    document.write("배열 객체 확인 결과 : " + Array.isArray(city) + "<br>");
</script>
//배열이 들어있는 배열에서 배열의 값(3) 꺼내기
var nums = new Array(5, 10, 21, "hello",new Array(2,3,4));
console.log(nums[4][1]);

For~in(반복문)을 통해 배열의 index값을 꺼낼 수 있다.

var arr = [1, 2, 3, "hello"];

//for(var i=0; i<arr.length; i++)
for(var i in arr)
	document.write(arr[i]+"<br />");

 

 

배열에 저장된 데이터 삭제 / 초기화

 <script>
        var arrdata=[]; 
        function insertArr() {
            var i=0;
            for(i=0; i<=99 ; i++) { 
                arrdata[i]=i+1;                      // 1~100 저장
	            document.write(arrdata[i] + " ");    // 데이터 출력
	        }
	        document.write("<p>배열 크기 : " + arrdata.length + "</p>");
        }
        function delDataArr() {
            var i; 
            for(i=0; i<arrdata.length; i++) {     
	            arrdata[i]=0;                        // 배열 데이터를 0으로 초기화
            }
	        selectArr(); //데이터 조회
        }
        function allDelArr() {	
            arrdata.length=0;    // 배열 초기화
            selectArr(); //데이터 조회
        }
        function selectArr() {
            var i; 
            for(i=0; i <arrdata.length; i++) {
	            document.write(arrdata[i] + " ");    // 데이터 조회
            }
        	document.write("<p> 배열 크기 : " + arrdata.length + "</p>");
            document.write("<a href='23_arr.html'>돌아가기</a>");
  	    }
        insertArr();    // 배열 데이터 생성 함수 호출
    </script>
    <p/>
    <button type="button" onclick="delDataArr()">배열 데이터 초기화</button>
    <button type="button" onclick="allDelArr()">배열 데이터 삭제</button>

 

 

연관배열

인덱스를 문자열로 설정하고 이 문자열에 값을 연결함

var 배열명 = { 키1:값1, 키2:값2,... };

접근방법

배열명.키
배열명['키']
var data={'f0':100, 'f1':200, 'f2':300}; //배열 생성
data['f3']=400;    // 배열 데이터 저장(인덱스 대신에 키를 적어줌)
data.f4=500;       // 배열 데이터 저장
document.write(data.f0 + "<br>");    // 'f0'키 데이터 조회
document.write(data['f2'] + "<br>");    // 'f2'키 데이터 조회

For~in(반복문)을 통해 배열의 값을 꺼낼 수 있다.

var data={'f0':100, 'f1':200, 'f2':300}; //배열 생성
      for(var i in data)
        document.write(data[i]+"<br />");

 

 

//2차원 배열 만들기
var d2data=[[10, 20, 30, 40, 0], [60, 70, 80, 90, 0]];
d2data[0][4]=50;    
d2data[1][4]=100;    
document.write("2차원 배열 첫 번째 데이터 : " + d2data[0][0] + "<br>");
document.write("2차원 배열 행 길이 : " + d2data.length + "<br>");
document.write("2차원 배열 열 길이 : " + d2data[0].length + "<br>");
//1차원 배열로 2차원 배열 만들기
var arr0=[10, 20, 30, 40, 50];
var arr1=[11, 21, 31, 41, 51];
var allArr=[arr0, arr1];    // 2차원 배열 생성

 

 

 

내장 객체

 

Array 객체

-배열이나 요소를 합침

concat() : 기존 배열에 요소를 추가해 새로운 배열을 만든다.(두 개 이상의 데이터를 결합하거나 다른 배열 객체를 결합.)

join() : 배열의 모든 요소를 문자열로 변환한 후 합친다. 이때 구분자를 지정할 수 있다.

-배열의 데이터를 검색하여 인덱스 위치를 반환
indexOf() : 주어진 값과 일치하는 값이 있는 배열 요소의 첫 인덱스를 반환. 없으면 -1을 반환한다.

lastIndexOf() : 맨 마지막 원소부터 검색함. 일치하는 값이 있는 배열 요소의 첫 인덱스를 반환.

-배열에서 요소를 꺼냄(Stack)

pop() : 배열에서 마지막 요소를 꺼내 반환.(꺼낸 값은 제거 된 상태로 반환. 진짜로 꺼내버리는거임)

push() : 배열의 맨 끝에 하나 이상의 새로운 요소를 추가하고, 새로운 length를 반환한다.

var x = new Array();

        x.push(3);
        x.push(52);
        x.push(77);
        console.log("x:"+x);

        var y = x.pop();
        console.log("y:"+y);
        console.log("x:"+x);

 

-새로운 요소 추가

shift() : 배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환한다.

unshift() : 배열의 시작부분에 새로운 요소를 추가하고, 새로운 length를 반환한다.

-정렬

reverse() : 배열의 배치 순서를 역순으로 바꿈

sort() : 배열 요소를 지정한 조건에 따라 정렬한다.(기본 정렬 순서는 유니코드 코드 포인트를 따른다.)

 

splice() : 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경한다.

var arr = [0,1,2,3,"hello"];
        console.log(arr);

        //1번째 index에서부터 2개를 지우고 "hi" 입력
        arr.splice(1,2,"hi");
        console.log(arr);
        //2번째 index부터 0개를 지우고 "hi" 입력(그냥 추가만 되는거임)
        arr.splice(2,0,"hi");
        console.log(arr);

 

slice() : 배열의 일부를 추출한 새 배열을 반환한다. 원본 배열은 수정되지 않음.

every() : 배열의 모든 요소가 주어진 함수에 대해 참이면 true, 그렇지 않으면 false를 반환한다.

filter() : 배열 요소 중에서 주어진 필터링 함수에 대해 true인 요소만 골라 새로운 배열을 만든다.

forEach() : 배열의 모든 요소에 대해 주어진 함수를 실행한다.

toString() : 배열에서 지정한 부분을 문자열로 반환한다.(이때 각 요소는 쉼표로 구분)

map() : 배열의 데이터를 함수의 인자로 전달하고 함수의 수행 결과를 반환받아 새로운 배열 생성

 

Date 객체

//현재 날짜
var d = new Date();
//특정 날짜
var d = new Date("2022-08-12")
//특정 날짜와 시간
var d = new Date("2022-08-12T18:00:00")
var d = new Date(2022,07,12,18,00,00)	//월(month)은 0부터 시작
가져오기-Date()기준 설정하기 의미 설명
getFullYear() setFullYear() 년도  
getMonth() setMonth() 0~11 > 1월~12월
getDate() setDate()  
getDay() setDay() 요일 0~6 > 일요일 ~ 토요일
getHours() setHours() 시간  
getMinutes() setMinutes()  
getMilliseconds() setMilliseconds() 밀리초  
getSeconds() setSeconds()  
getTime() setTime() Unix 타임 1970/1/1 12:00 기준 경과한 밀리 초
함수명 설명
toString() Fri Aug 30 2022 22:05:03 GMT+0900 (대한민국 표준시)
toDateString() Fri Aug 30 2022
toLocaleString() 2022. 8. 30. 오후 10:05:11
toLocaleDateString() 2022. 8. 30.

https://momentjs.com/

 

Math 객체

Math.min(x,y,z....) 가장 작은 값 반환
Math.max(x,y,z....) 가장 큰 값 반환
Math.random() 0보다 크거나 같고 1보다 작은 무작위 숫자 반환
Math.round(x) 소수점 첫 번째 자리에서 반올림 후 반환
Math.floor(x) 인수와 같거나 작은 수 중에서 가장 큰 정수 반환
Math.ceil(x) 인수와 같거나 큰 수 중에서 가장 작은 정수 반환
Math.abs(x) x의 절댓값 반환
Math.sqrt(x) x의 제곱근 반환
Math.cbrt(x) x의 세제곱근 반환
Math.exp(x) e의 x제곱근 값을 반환
Math.log(x) x의 자연로그 값을 반환.(ln x)
Math.log2(x) x의 2를 밑으로 가지는 로그 값을 반환
Math.pow(x,y) x의 y제곱을 반환
Math.sign(x) x의 부호 값을 반환

 

브라우저 관련 객체

브라우저 창을 관리할 수 있도록 브라우저 요소를 객체화 해 놓은 것.

 

window 객체

 : 최상위 객체

height : 새 윈도우의 높이

width : 새 윈도우의 너비

location : 주소 입력창 유무

menubar : 메뉴 유무

resizable : 화면 크기 조절 가능 여부

status : 상태 표시줄 유무

toolbar : 툴바 유무

left: 왼쪽 기준 팝업 위치 지정

top: 상단 기준 팝업 위치 지정

scrollbars: 스크롤바 유무

fullscreen: 풀스크린 출력

channelmode: 채널모드 출력

*픽셀값 혹은 yes, no, 1, 0으로 값 입력 가능

 

- window 객체의 기본 메소드

moveBy(x, y) : 윈도우의 위치를 상대적으로 이동

moveTo(x, y) : 윈도우의 위치를 절대적으로 이동

resizeBy(x, y) : 윈도우의 크기를 상대적으로 지정

resizeTo(x, y) : 윈도우의 크기를 절대적으로 지정

scrollBy(x, y) : 윈도우 스크롤의 위치를 상대적으로 이동

scrollTo(x, y) : 윈도우 스크롤의 위치를 절대적으로 이동

focus() : 윈도우에 초점 맞춤

blur() : 윈도우에 맞춘 초점 제거

close() : 윈도우 닫음

 

screen 객체

 : 웹브라우저 화면이 아닌 운영체제 화면의 속성을 갖는 객체

- screen 객체의 속성

width : 화면의 너비

height : 화면의 높이

availWidth : 실제 화면에서 사용 가능한 너비

availHeight : 실제 화면에서 사용 가능한 높이

colorDepth : 사용 가능한 색상 수

pixelDepth : 한 픽셀당 비트 수

 

location 객체

 : 웹브라우저의 주소 표시줄과 관련된 객체

href : 문서의 URL 주소

host : 호스트 이름과 포트번호 // localhost:30763

hostname : 호스트 이름 // localhost

port : 포트 번호 // 30763

pathname : 디렉토리 경로 // /a/index.html

hash : 앵커 이름(#~) // #beta

search : 요청 매개변수 // ?param=10

protocol : 프로토콜 종류  // http:

 

- location 객체의 메소드

assign(link) : 현재 위치를 이동

reload() : 새로고침

replace(link) : 현재 위치를 이동(뒤로가기 사용 불가)

 

navigator 객체

 : 웹페이지를 실행 중인 브라우저에 대한 정보가 담긴 객체

- navigator 객체의 속성

appCodeName : 브라우저의 코드 이름

appName : 브라우저의 이름

appVersion : 브라우저의 버전

platform : 사용 중인 운영체제의 시스템 환경

userAgent : 웹 브라우저 전체 정보

 

History 객체

읽기 전용. 돌아다녔던 사이트 주소 저장

 

 

 

 

 

 

 

 

 

http://www.tcpschool.com/javascript/js_object_create

'프론트' 카테고리의 다른 글

Javascript 스크립트 작성 방식  (0) 2022.09.04
JavaScript 문서 객체(DOM)  (0) 2022.09.03
JavaScript 변수, 함수, 입출력방법, 이벤트  (0) 2022.08.30
CSS 반응형 웹  (0) 2022.08.29
CSS 변형, 트랜지션, 애니메이션  (0) 2022.08.25