Javascript - 변수의 형태 (객체형)

2021. 5. 21. 09:11카테고리 없음

객체형 데이터 타입


객체형 데이터 타입은 소수의 데이터 요소가 아닌 다양한 데이터를 담을 수 있다는 특징이 있다.

        1. 연관된 데이터들을 하나로 모을 수 있다.

        2. 데이터를 가독성좋게 관리를 할수 있다.

        3. 재사용성이 좋아지고 유지보수하는데 많은 이점이 생긴다.


 

1. 객체(object)

 

    * 객체는 순서가 없는 정리정돈 상자이다

 

객체선언


    * key : value 로 구성된 properties를 { } 중괄호로 묶어서 선언한다
               ex) let 변수명 = {"key" : value};
    key값은 문자열을 사용한다.
       따옴표가 없어도 되지만 띄어쓰기가 있다면 의도적으로 따옴표로 묶어줘야한다.

    value는 다양한 자료형이 올수있다
    * value에 함수를 넣으면 method라고 한다 

 

        메소드: 특정기능을 정의한 코드의 집합

 

객체호출

 

    * 객체 호출은 두가지 방법으로 할 수 있습니다

        1. 변수명.key; 

        2. 변수명['key'];

 

2.배열 (array)


    * 배열은 순서가 정해진 정리정돈 상자이다

 

    배열선언


        배열은 요소들을 [ ] 대괄호 로 묶어서 표현하고 각 요소들은 쉼표로 구분한다
        요소에는 다양한 자료형이 사용하능하다

       

<script>
let alphabet = ['a','b','c','d','e']
</script>

    배열호출

 

        배열의 각 요소들은 각각 숫자위치가 정해져있다.
        이를 인덱스라고 하며 인덱스값으로 요소를 호출할수있다.

        첫번째 인덱스는 0으로 시작한다
       변수명[인덱스값];

<script>
let alphabet = ['a','b','c','d','e']
   alert(alphabet[0]); // a
   alert(alphabet[1]); // b
</script>



3.함수 (function)


    * 함수는 입력값에 따른 출력값을 주는 기능을 가진 상자이다.
       (다른 인자를 입력하고 동일한 코드를 반복하여 다른결과를 출력할 수 있다)

 

함수선언

    function키워드로 시작하고 그 뒤로 함수명, 괄호, 중괄호 로 선언한다.

<script>

	function 함수명(parameter){
		함수본문
	};

</script>

    매개변수 (parameter)

    매개변수는 함수의 선언에 나열되어 있는 변수들을 의미하며, 함수 호출시 전달된 인자를 받아들인다
  

함수호출

    함수명 뒤에 ()를 붙여서 호출한다 

   ()에는 인자가 들어갈 수 있다.

<script>
함수명(argument);
</script>

* 주의 : ()없이 method에 접근하면 함수 정의를 반환한다 

<script>
var person = {
  firstName: "Byeong min",
  lastName : "Choi",
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};

document.getElementById("demo").innerHTML = person.fullName(); 
		// Byeong min Choi 

document.getElementById("demo").innerHTML = person.fullName; 
		//function() { return this.firstName + " " + this.lastName; }

</script>


    인자 (argument)
    인자는 함수 호출시에 전달되는값이다.

 

1. 함수 호출시 매개변수보다 더 많거나 적은 인자를 전달 할 수 있다

<script>
		function showMessage(firstName, lastName) {
			alert("Hello " + firstName + " " + lastName);
		}

		showMessage("Choi", "Byeong", "Min"); 
				// hello Choi Byeong  
                		// 1-1. 더 많은 인자를 전달하면 무시된다.
		showMessage("Choi");  
				// hello Choi undefined  
               			// 1-2. 더 적은 인자를 전달하면 나머지 매개변수는 undefined를 정의한다.
		showMessage();
        			// hello undefined undefiend   
                  	 	// 1-3 인자가 없으면 undefined를 정의한다.
</script>

2-1 인자는 배열처럼 인덱스 값으로 접근이 가능하다

	<script>
		function showMessage(firstName, lastName) {
			alert("Hello " + arguments[0] + " " + arguments[1]);
		}

		showMessage("Byeong", "Min"); 
        		// Hello Byeong Min
		showMessage("Yu", "Jin");
        		// Hello Yu Jin
		showMessage(111, 222);
        		// Hello 111 222
    </script>

 

2-2 이 경우 인자는 매개변수가 없어도 유효하다

	<script>
		function showMessage() {
			alert("Hello " + arguments[0] + " " + arguments[1]);
		}

		showMessage("Byeong", "Min"); 
        		// Hello Byeong Min
		showMessage("Yu", "Jin");
       			// Hello Yu Jin
		showMessage(111, 222);
        		// Hello 111 222
        
    </script>

 


* 함수는 입력값에 따른 출력값을 주는 기능을 가진 상자에 비유했는데 출력값은 return이 담당한다.

ex1) 정상작동
<script>
function myFunction(p1, p2) {
  	let mul = p1 * p2;
    	let add = p1 + p2;
   	let sub = p1 - p2;
   	return mul; // 12
}
alert(myFunction(4,3))
// return mul; ->12
// return add; -> 7
// return sub; -> 1
</script>

1.  return은 함수 어디에나 위치할 수 있다.

2. 실행흐름이 return에 도달하면 함수의 실행은 그 지점에서 중단되고 함수를 호출한 곳에 값을 반환한다.

3. return이 없거나 return만 있는 함수는 undefined를 반환

ex2) 출력안됨 실행흐름이 return에 도달하면 즉시 함수종료하고 값을 호출한 곳으로 반환
<script>
function myFunction(p1, p2) {
  	let mul = p1 * p2;
    	return add; //함수종료
        let add = p1 + p2;
    	let sub = p1 - p2;
}
alert(myFunction(4,3))
// 출력안됨
// return mul; -> 12
// return sub; -> 출력안됨
</script>
ex3) return만 있으면 undefined출력
<script>
function myFunction(p1, p2) {
  	return;
}
alert(myFunction(4,3))
// undefined출력
// return에 계산식이 있으면 정상출력 ex) return p1 + p2; -> 7
</script>
ex4) return이 없으면 undefined출력
<script>
function myFunction(p1, p2) {
  	let mul = p1 * p2;
}
alert(myFunction(4,3))
</script>
// undefined출력