๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป/Javascript

(49) [JavaScript] 5์ผ JavaScript ๊ฐ์ฒด - ์ƒ์„ฑ, ๊ตฌ์กฐ๋ถ„ํ•ด

by ๋”ฐ๊ถˆ 2024. 4. 28.

 

 

 

๊ฐ์ฒด(Object)๋ž€?
๊ฐ์ฒด๋Š” JavaScript ์–ธ์–ด ๋งŒ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŠน์ง•์˜ ๊ธฐ์ดˆ๋ฅผ ์ด๋ฃจ๋Š” ์ž๋ฃŒํ˜•์œผ๋กœ,
๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœํผํ‹ฐ ๋ฐ ํ”„๋กœํผํ‹ฐ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์— ์กฐ์ž‘์„ ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š”
method์˜ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. 

 

 

 

ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜ ์–ธ์–ด

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํด๋ž˜์Šค ๊ธฐ๋ฐ˜์ด ์•„๋‹Œ `ํ”„๋กœํ† ํƒ€์ž…`์„ ๊ธฐ๋ฐ˜์œผ๋กœํ•˜๋Š” ๊ฐ์ฒด ๊ธฐ๋ฐ˜ ์–ธ์–ด์ด๋‹ค. ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜ ์–ธ์–ด๋Š” ํ”„๋กœํ† ํƒ€์ž… ๊ฐ์ฒด๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ์œผ๋ฉฐ, ์ƒˆ๋กœ์šด ๊ฐ์ฒด์˜ ์ดˆ๊ธฐ ์†์„ฑ์„ ๊ฐ€์ ธ์˜ค๋Š” ํ…œํ”Œ๋ฆฟ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด์ด๋‹ค. ๊ฐ์ฒด ์›ํ˜•์ธ ํ”„๋กœํ† ํƒ€ํŒ์„ ์ด์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๋ฉฐ, ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋Š” ๋˜ ๋‹ค๋ฅธ ๊ฐ์ฒด์˜ ์›ํ˜•์ด ๋  ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœํ† ํƒ€์ž… ์–ธ์–ด๋Š” ํด๋ž˜์Šค ์—†์ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

๊ฐ์ฒด ์ƒ์„ฑ ๋ฐฉ๋ฒ•

  1. ๊ฐ์ฒด ์ด๋‹ˆ์…œ๋ผ์ด์ € ๋˜๋Š” ๋ฆฌํ„ฐํ„ธ
  2. ์ƒ์„ฑ์ž ํ•จ์ˆ˜
  3. Object.create๋ฉ”์†Œ๋“œ

์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ƒ์„ฑ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€์ž…๋œ ๊ฐ์ฒด๋ฅผ ์ธ์Šคํ„ฐ์Šค๋ผ๊ณ  ํ•œ๋‹ค. 

</head>
<body>

	<h3>๊ฐ์ฒด-์ƒ์„ฑ</h3>

	<script type="text/javascript">
		var s;

		//1.๊ฐ์ฒด์ƒ์„ฑ-๊ฐ์ฒด๋ฆฌํ„ฐ๋„ ์ด์šฉ
		//var obj = {}; // ๋นˆ๊ฐ์ฒด 
		var obj = {
			name : '์ด์ž๋ฐ”',
			age : 20
		};
		console.log(obj.name, obj.age);

		//์†์„ฑ๊ฐ’ ๋ณ€๊ฒฝ
		obj.name = '๋‹ค์ž๋ฐ”';
		console.log(obj.name, obj.age);

		//๋™์ ์œผ๋กœ ์†์„ฑ ์ถ”๊ฐ€
		obj.city = '์„œ์šธ';
		console.log(obj.name, obj.age, obj.city);

		var obj2 = {};
		obj2.subject = '์ž๋ฐ”'; // ๋™์ ์œผ๋กœ ์†์„ฑ ์ถ”๊ฐ€ 
		obj2.score = 90;
		console.log(obj2.subject, obj2.score);

		//2.๊ฐ์ฒด์ƒ์„ฑ-๊ฐ์ฒด๋ฆฌํ„ฐ๋„ ์ด์šฉ : ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ
		var obj3 = {
			name : 'ํ™๊ธธ๋™',
			age : 20,
			state : function() {
				return this.age >= 19 ? '์„ฑ์ธ' : '๋ฏธ์„ฑ๋…„์ž';
			},
			msg : function() {
				//let s = state(); // ์—๋Ÿฌ 
				let s = this.state();

				let m = `์ด๋ฆ„ : &{this.name},๋‚˜์ด:${this.age},&{s}`;
				console.log(m);
			}
		};
		
		obj3.msg();
		
	</script>

</body>
</html>

 

</head>
<body>

	<h3>๊ฐ์ฒด ์ƒ์„ฑ- ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•œ ๊ฐ์ฒด ์ƒ์„ฑ</h3>

	<script type="text/javascript">
	//๊ฐ์ฒด ์ƒ์„ฑ - ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ๊ฐ์ฒด ์ƒ์„ฑ 
	
	//์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ
	function User(name,age) {
		this.name=name; // ํ”„๋ฆฌํผํ‹ฐ(์†์„ฑ)
		this.age=age;
		
		//๋ฉ”์†Œ๋“œ 
		this.state=()=> this.age >= 19? '์„ฑ์ธ' : '๋ฏธ์„ฑ๋…„์ž';
		this.msg = function() {
			let s = this.state();
			let m = `์ด๋ฆ„:${this.name},๋‚˜์ด:${this.age},${s}`;
			console.log(m);
		};
	}
	//์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ์ฒด ์ƒ์„ฑ
	var obj = new User('๊น€์ž๋ฐ”',21);
	obj.msg();
    
	</script>

</body>
</html>

 

 

</head>
<body>

	<h3>๊ฐ์ฒด</h3>

	<script type="text/javascript">
	//์ƒ์„ฑ์ž ํ•จ์ˆ˜
	
	function User(name) {
		this.name=name;
	}
	
	var obj=new User('์ž๋ฐ”');
	console.log(obj instanceof User); // true 
	console.log(obj instanceof Object); // true
	
	var obj2 = {};
	console.log(obj2 instanceof Object); // true 
	</script>

</body>
</html>

 

 

</head>
<body>

	<h3>๊ฐ์ฒด - this</h3>
	
	<script type="text/javascript">
	//๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ์˜ ๋ฉ”์†Œ๋“œ ๋‚ด์˜ this : ํ•ด๋‹น ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ๊ฐ์ฒด
	var obj = {
		name : '๋‹ค์ž๋ฐ”',
		sayName : function() {
			//console.dir(this);
			console.log(this.name);
		}
			
	};
	obj.sayName();
	
	//new๋กœ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ• ๋•Œ ์ƒ์„ฑ์ž ํ•จ์ˆ˜์˜ this : ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด
	function Test(arg) {
		this.name=arg;
		
		this.getName=()=>this.name;
	}
	
	var obj2 = new Test('ํ™๊ธธ๋™');
	console.log(obj2.getName());
	
	//์ผ๋ฐ˜ํ•จ์ˆ˜ : ์ผ๋ฐ˜ ํ•จ์ˆ˜์•ˆ์˜ this -> ์ „์—ญ๊ฐ์ฒด(window)
	var user='์Šคํ”„๋ง'; // ์ „์—ญ ๋ณ€์ˆ˜. ์ „์—ญ ๋ณ€์ˆ˜๋Š” window์˜ ์†์„ฑ 
	var sayUser = function () {
		console.log(this.user,user,window.user);
	};
	
	sayUser();
	
	//๊ฐ์ฒด์—์„œ this๋Š” ์ž์‹ ์„ ๋‚˜ํƒ€๋‚ด์ง€๋งŒ, ๋‹ค๋ฅธ ๊ณณ์—์„œ๋Š” window๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ ์ฃผ์˜ ํ•„์š” 
	
	</script>
</body>
</html>

 

 

</head>
<body>

	<h3>form ์š”์†Œ์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์•ˆ์—์„œ์˜ this : ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ ์‹œํ‚จ ๊ฐ์ฒด ์ž๊ธฐ ์ž์‹ </h3>
	<p>form ์š”์†Œ ์•ˆ์—์„œ์˜ this.form : ํ˜„์žฌ ๊ฐ์ฒด์˜ form ๊ฐ์ฒด </p>
	<form name="myForm">
		<p>
			์ด๋ฆ„ : <input type="text" name="name">
		</p>
		<p>
			๊ตญ์–ด : <input type="text" name="kor" onchange="validate(this);">
		</p>
		<p>
			์˜์–ด : <input type="text" name="emg" onchange="validate(this);">
		</p>
		<p>
			์ˆ˜ํ•™ : <input type="text" name="mat" onchange="validate(this);">
		</p>
		<p>
			<button type="button" onclick="send(this.form);">ํ™•์ธ</button>
		</p>
	</form>

	<script type="text/javascript">
		function send(f) {
			//const f = document.myForm;

			const inputELS = document.querySelectorAll('form input[type=text]');
		
			
			for(let el of inputELS){
				if(! el.value.trim()){
					el.focus();
					return;
				}
			}
			
			 
			/*
			 for (let i = 0; i < inputELS.length; i++) {
				if (inputELS[i].value.trim()) {
					inputELS[i].focus();
					return;
				}

				if (i >= 1 && validate(inputELS[i]) === false) {
					return;
				}

			}
			*/

			let name = f.name.value;
			let kor = f.kor.value;
			let eng = f.eng.value;
			let mat = f.mat.value;

			let s = `${name}:${kor},${eng},${mat}`;
			alert(s);
		}

		function validate(inputEL) {
			if (!/^\d{1,3}$/.test(inputEL.value)) {
				inputEL.value = '';
				inputEL.focus();
				return false;
			}
			if (parseInt(inputEL.value) > 100) {
				inputEL.value = '';
				inputEL.focus();
				return false;
			}

			return true;
		}
	</script>


</body>
</html>

 

 

๊ตฌ๋ฌธ ์ „๊ฐœ 

 

</head>
<body>


	<h3>๊ตฌ๋ฌธ ์ „๊ฐœ</h3>
	<!-- 
		- ๋ฐฐ์—ด์ด๋‚˜ ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์ด ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ’์„ 0๊ฐœ ์ด์ƒ์˜ ์ธ์ˆ˜(ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœํ•  ๊ฒฝ์šฐ) ๋˜๋Š” 
		  ์š”์†Œ(๋ฐฐ์—ด ๋ฆฌํ„ฐ๋„์ธ ๊ฒฝ์šฐ)๋กœ ํ™•์žฅํ•˜์—ฌ 0๊ฐœ ์ด์ƒ์˜ ํ‚ค-๊ฐ’ ์Œ์œผ๋กœ ๊ฐ์ฒด๋กœ ํ™•์žฅ ์‹œํ‚ฌ์ˆ˜ ์žˆ๋‹ค. 
	 -->

	<script type="text/javascript">
	function sum(x,y,z) {
		return x+y+z;
	}
	
	const nums=[10,20,30];
	
	//var s = sum(nums); // 10,20,30undefinedundefined <- ์ด์ƒํ•œ ํ˜„์ƒ
	//var s=sum.apply(null,nums);
	var s=sum(...nums);
	console.log(s);
	
	// ๊ฐ์ฒด ๋ฆฌํ„ฐ๋„์— ์†์„ฑ์€ ์ „๊ฐœ : ์ œ๊ณต๋œ ๊ฐ์ฒด๊ฐ€ ์†Œ์œ ํ•œ ์—ด๊ฑฐํ˜• ํ”„๋กœํผํ‹ฐ๋ฅผ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋กœ ๋ณต์‚ฌ
	var obj1 = {name:'ํ™๊ธธ๋™',age:20};
	var obj2 = {name:'๊น€์ž๋ฐ”',city:'์„œ์šธ'};
	
	var obj3 = obj1; // ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ๋‘๋ณ€์ˆ˜๊ฐ€ ์ฐธ์กฐ 
	console.log(obj3===obj1); // true
	obj3.name='๋‹ค์ž๋ฐ”';
	console.log(obj1.name); // ๋‹ค์ž๋ฐ”
	
	
	//obj1 ๊ฐ์ฒด๋ฅผ ๋ณต์ œํ•ด์„œ ์ƒˆ๋กœ์šด ๊ฐ์ฒด ๋งŒ๋“ค๊ธฐ 
	var cloneObj = {...obj1};
	console.log(cloneObj.name); //๋‹ค์ž๋ฐ” 
	console.log(cloneObj===obj1); // false
	
	var mobj = {...obj1,...obj2}
	console.log(mobj);
	
	
	</script>
</body>
</html>

 

 

</head>
<body>

	<h3>๊ฐ์ฒด-๋™์ ์œผ๋กœ ํ”„๋กœํผํ‹ฐ ์ถ”๊ฐ€</h3>
	
	<script type="text/javascript">
	var obj = {
			name :'๋‹ค์ž๋ฐ”'
	};
	
	console.log(obj.name); // ๋‹ค์ž๋ฐ” 
	console.log(obj.age); // undefined
	
	//๋™์ ์œผ๋กœ ์†์„ฑ ์ถ”๊ฐ€
	obj.age=20;
	console.log(obj.age); // 20
	
	
	//์†์„ฑ์ œ๊ฑฐ 
	delete obj.name;
	console.log(obj.name);
	
	</script>


</body>
</html>

 

 

</head>
<body>

	<h3>๊ฐ์ฒด -ํ”„๋กœํผํ‹ฐ ๋‚˜์—ด ๋ฐ ์ ‘๊ทผ</h3>

	<script type="text/javascript">
		var obj = {
			name : 'ํ•˜์ž๋ฐ”',
			age : 20,
			result : function() {
				return this.age >= 19 ? '์„ฑ์ธ' : '๋ฏธ์„ฑ๋…„์ž';
			}

		};

		//๊ฐ์ฒด์˜ ์†์„ฑ ์ ‘๊ทผ
		console.log(obj, name); // ๋„ํŠธ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ์ ‘๊ทผ
		console.log(obj['name']); //๋Œ€๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ์ ‘๊ทผ

		//๋ฉ”์†Œ๋“œ ์ ‘๊ทผ
		console.log(obj.result());

		//๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ ๋‚˜์—ด 
		for ( let o in obj) {
			// o : ์†์„ฑ์ด๋ฆ„
			// ํ”„๋กœํผํ‹ฐ : o -> name,obj[o] -> ํ•˜์ž๋ฐ”
			// ๋ฉ”์†Œ๋“œ : o -> result,obj[o]->f(){์†Œ์Šค}
			console.log(o, obj[o]);

		}
		console.log('----------------------');

		//๊ฐ์ฒด์— ํ”„๋กœํผํ‹ฐ ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ 
		console.log('name' in obj); // true
		console.log('city' in obj); // false
		
		//console.log(obj.name);
		
		with(obj){
			console.log(name); // obj.name
			console.log(age); // obj.age
		}
		
		
		
		
		
		</script>

</body>
</html>

 

 

</head>
<body>

	<h3>๊ฐ์ฒด - ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€</h3>
	
	<script type="text/javascript">
	function User(name,age) {
		this.name=name;
		this.age=age;
	}
	
	var obj = new User('์•„์ €์”จ',20);
	obj.score = 80; // obj ๊ฐ์ฒด์— scroe ์†์„ฑ ์ถ”๊ฐ€ 
	obj.state = function () { // obj ๊ฐ์ฒด์— state() ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€  
		return this.age >=19? '์„ฑ์ธ': '๋ฏธ์„ฑ๋…„์ž';
	};
	console.log(obj.name,obj.score);
	console.log(obj.state());
	
	var obj2 = new User('๋‚จ๊ท ํ• ๋ฐฐ',29);
	console.log(obj2.name,obj2.score); // ๋‚จ๊ท ํ• ๋ฐฐ undefined  
	
	console.log(obj2.state()); // obj2.state is not a function ์—๋Ÿฌ ํ•จ์ˆ˜๋Š” ์—†์œผ๋ฉด ํ˜ธ์ถœํ• ์ˆ˜์—†๋‹ค 
	
	
		</script>
	
	

</body>
</html>

 

 

</head>
<body>


	<h3>๊ฐ์ฒด - ๋ฉ”์†Œ๋“œ / ํ”„๋กœํผํ‹ฐ ์ถ”๊ฐ€</h3>
	<!-- 
		- prototype ํ”„๋กœํผํ‹ฐ
		: ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ์กด์žฌ
		: ์ƒ์„ฑ์ž๋กœ ์ƒ์„ฑ๋˜๋Š” ๊ฐ์ฒด์— ๋ฌผ๋ ค์ค„ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ 
	 -->


	<script type="text/javascript">
		function User(name) { // ์ƒ์„ฑ์ž
			this.name = name; // ํ”„๋กœํ† ํƒ€์ž…์— ์ถ”๊ฐ€
			this.age = 20; // ํ”„๋กœํ† ํƒ€์ž…์— ์ถ”๊ฐ€. ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ
			this.state = function() { //ํ”„๋กœํ† ํƒ€์ž…์— ์ถ”๊ฐ€ 
				return this.age >= 19 ? '์„ฑ์ธ' : '๋ฏธ์„ฑ๋…„์ž';
			};
		}

		console.dir(User); // prototype ํ”„๋กœํผํ‹ฐ๋ฅผ ํ™•์ธ

		// User ์ƒ์„ฑ์ž์˜ prototype์— scroe ๋ผ๋Š” ์†์„ฑ ์ถ”๊ฐ€
		User.prototype.score = 80;
		// User ์ƒ์„ฑ์ž์˜ prototype์— msg ๋ผ๋Š” ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€ 
		User.prototype.msg = function() {
			console.log(this.name + ':' + this.state() + ':' + this.score);
		};

		var obj = new User('์ด์ž๋ฐ”');
		console.log(obj.age);
		console.log(obj.state());
		obj.msg();
		console.log('--------------------');

		var obj2 = new User('์Šคํ”„๋ง');
		obj2.age = 17;
		console.log(obj2.age);
		console.log(obj2.state());
		obj2.msg();
		console.log('--------------------');

		
		</script>

</body>
</html>

 

 

</head>
<body>

	<h3>๊ฐ์ฒด : ์ •์  ๋ฉ”์†Œ๋“œ</h3>

	<script type="text/javascript">
		//์ •์  ๋ฉ”์†Œ๋“œ : ์ƒ์„ฑ์ž์˜ ์†์„ฑ์— ์ง์ ‘ ์ง€์ •๋œ ๋ฉ”์†Œ๋“œ 
		function User(nmae) { // ์ƒ์„ฑ์ž
			this.name = name;
			this.getName = function() {
				return this.name;
			};
		}

		User.state = function(age) { // ์ •์  ๋ฉ”์†Œ๋“œ 
			return age >= 19 ? '์„ฑ์ธ' : '๊ธ‰์‹';
		};

		let obj = new User('ํ•œ๋ณ„')
		console.log(obj.getName());

		//console.log(User.getName()); // ์—๋Ÿฌ.๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์•ผ ์ ‘๊ทผ ๊ฐ€๋Šฅ
		console.log(User.state(17)); // static ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ 
		
		
	</script>

</body>
</html>

 

 

๊ตฌ์กฐ๋ถ„ํ•ด

๊ตฌ์กฐ๋ถ„ํ•ด(๋น„๊ตฌ์กฐํ™”) ํ• ๋‹น ๊ตฌ๋ฌธ์€ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ํ•ด์ฒดํ•˜์—ฌ ๊ทธ ๊ฐ’์„ ๊ฐœ๋ณ„ ๋ณ€์ˆ˜์— ๋‹ด์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” JavaScript ํ‘œํ˜„์‹์ด๋‹ค. 

 

 

๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด

 

</head>
<body>

	<h3>๊ตฌ์กฐ๋ถ„ํ•ด</h3>
	<!-- 
		๊ตฌ์กฐ๋ถ„ํ•ด(๋น„๊ตฌ์กฐํ™”)ํ• ๋‹น ๊ตฌ๋ฌธ์€ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ํ•ด์ œํ•˜์—ฌ 
		๊ทธ ๊ฐ’์„ ๊ฐœ๋ณ„ ๋ณ€์ˆ˜์— ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ์ž์Šค ํ‘œํ˜„์‹ 
	 -->

	<script type="text/javascript">
	 // ๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด
	 
	 //๊ธฐ๋ณธ ๋ณ€์ˆ˜ ํ• ๋‹น
	 var arr = [10,20,30];
	 var [a,b,c]=arr;
	 console.log(a,b,c,a+b+c);
	 
	 //์„ ์–ธ์—์„œ ๋ถ„๋ฆฌํ•˜์—ฌ ํ• ๋‹น
	 var x, y;
	 //x = 10; y=20;
	 [x,y]=[1,2];
	 console.log(x,y);
	 
	 //๊ธฐ๋ณธ๊ฐ’
	 var x2,y2;
	 [x2=10,y2=20]=[1];
	 console.log(x2,y2);//1 20
	 
	 //๋ณ€์ˆ˜ ๊ฐ’ ๊ตํ™˜ 
	 var m = 10;
	 var n = 5;
	 [m,n]=[n,m];
	 console.log(m,n);
	 
	 
	 //ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์ธ ๋ฐฐ์—ด์„ ๋ถ„ํ•ด 
	 function f() {
		let aa = [10,20,30];
	
		return aa;
	}
	 
	 var [a3,b3,c3] = f();
	 console.log(a3,b3,c3);
	 
	 
	 //๋ณ€์ˆ˜์— ๋ฐฐ์—ด์˜ ๋‚˜๋จธ์ง€ ๊ฐ’ ํ• ๋‹น
	 var arr4 = [1,3,5,7,9];
	 var [a4,...b4]=arr4;
	 console.log(a4); // 1
	 console.log(b4); //[3,5,7,9]
	 
	 
	 
	 
	 </script>


</body>
</html>

 

</head>
<body>

	<h3>๊ตฌ์กฐ๋ถ„ํ•ด</h3>

	<script type="text/javascript">
	//๊ฐ์ฒด ๊ตฌ์กฐ ๋ถ„ํ•ด 
	
	var obj = {name:'ํ™๊ธธ๋™',age:20};
	var {name,age}=obj; // ๋ณ€์ˆ˜๋ช…์ด ์†์„ฑ๋ช…๊ณผ ๋™์ผ 
	console.log(name,age);
	
	//var{p,q}=obj;
	//console.log(p,q); undefined undefined//
	var{name:p,age:q}=obj ;
	console.log(p,q);
	
	
	var a2,b2;
	({a2,b2}={a2:1,b2:2}); // ์„ ์–ธ ์—†๋Š” ํ• ๋‹น 
	console.log(a2,b2);
	
	//๊ธฐ๋ณธ๊ฐ’
	var {x=10,y=5}={x:3};
	console.log(x,y); // 3 5
	
	
	var {n:nn=10,m:mm=15}={n:5};
	console.log(nn,mm); // 5 undefined 
	
	
	
	
	</script>


</body>
</html>