์ฝ”์–ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ 1์žฅ

     

    ๐Ÿ’ก ๊ธฐ๋ณธํ˜• ๋ฐ์ดํ„ฐ์™€ ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ์˜ ์ฐจ์ด?

    • ๊ธฐ๋ณธํ˜•์€ ๊ฐ’์ด ๋‹ด๊ธด ์ฃผ์†Ÿ๊ฐ’์„ ๋ฐ”๋กœ ๋ณต์ œ(๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ฃผ์†Ÿ๊ฐ’์„ ๋ณต์ œํ•ด์•ผ ํ•จ )ํ•˜๊ณ  ์ฐธ์กฐํ˜•์€ ๊ฐ’์ด ๋‹ด๊ธด ์ฃผ์†Ÿ๊ฐ’๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌถ์Œ์„ ๊ฐ€๋ฆฌํฌ๋Š” ์ฃผ์†Ÿ๊ฐ’์„ ๋ณต์ œํ•จ→ ์ฐธ์กฐํ˜•์€ ์ฃผ์†Ÿ๊ฐ’์„ ๋ณต์ œํ•˜๋Š” ๊ณผ์ •์„ ๋‘๋ฒˆ ๊ฑฐ์นจ
    • ์œ„์˜ ๋‚ด์šฉ๊ณผ ์—ฐ๊ด€๋˜์–ด์„œ ๊ธฐ๋ณธํ˜•์€ ๋ถˆ๋ณ€์„ฑ์„ ๋„๊ณ  ์ฐธ์กฐํ˜•์€ ๋ณดํ†ต ๊ฐ€๋ณ€์„ฑ์„ ๋” (๋ถˆ๋ณ€๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์•„๋ž˜์— )
    • ๋ถˆ๋ณ€์„ฑ์ด๋ž€?

    -๋ถˆ๋ณ€์„ฑ๊ณผ ๊ฐ€๋ณ€์„ฑ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์˜ฌ๋ผ๊ฐ€๋Š” ์ง€ ์ดํ•ด๊ฐ€ ํ•„์š”

    <๋ฐ์ดํ„ฐ ํ• ๋‹น>

    	var a;     //๋ณ€์ˆ˜ a ์„ ์–ธ
    a= 'abc'      //๋ณ€์ˆ˜ a์— ๋ฐ์ดํ„ฐ ํ• ๋‹น
    

    ๋ณ€์ˆ˜(๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธธ ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„ )๋ฅผ ํ• ๋‹นํ•  ๋•Œ ๋ฐ์ดํ„ฐ( ์œ„ ์ฝ”๋“œ์—์„œ ๋ฌธ์ž์—ด’abc’)๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ ์˜์—ญ์— (์ฑ…์˜ ์˜ˆ์‹œ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์˜์—ญ ์ฃผ์†Œ๊ฐ€ 5004์ด๊ณ  5004๋ผ๋Š” ์ฃผ์†Œ์— ๋ฐ์ดํ„ฐ ‘abc’๊ฐ€ ์ €์žฅ๋จ ) ์ €์žฅํ•˜๊ณ  ๊ทธ ๋ฐ์ดํ„ฐ ์˜์—ญ์˜ ์ฃผ์†Œ (5004)๋ฅผ ๋ณ€์ˆ˜ ์˜์—ญ์— ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง

    → ์ด๋ ‡๊ฒŒ ๋ณ€์ˆ˜ ์˜์—ญ๊ณผ ๋ฐ์ดํ„ฐ ์˜์—ญ์„ ๋ถ„๋ฆฌํ•˜๋ฉด ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํšจ์œจ์ด ๋†’์•„์ง

    ๋ถˆ๋ณ€์„ฑ?

    var b = 5;
    var c = 5;
    b = 7;
    

    ์ฒซ ๋ฒˆ์จฐ ์ค„์—์„œ ์ปดํ“จํ„ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ ์˜์—ญ์—์„œ 5๋ฅผ ์ฐพ๊ณ  ์—†์œผ๋ฉด ๋ฐ์ดํ„ฐ ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด 5๋ฅผ ์ €์žฅ

    ๋ฐ์ดํ„ฐ ๊ณต๊ฐ„์˜ ์ฃผ์†Œ๋ฅผ b์— ์ €์žฅ

    ๋‘๋ฒˆ์งธ ์ค„์—์„œ c์— ์•„๊นŒ ๋ฐ์ดํ„ฐ ์˜์—ญ์— ์ €์žฅํ•œ 5๋ฅผ ํ• ๋‹นํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋ฐ์ดํ„ฐ ์˜์—ญ์˜ 5๋ฅผ ์ฐพ์•„์„œ ๊ทธ ์˜์—ญ์˜ ์ฃผ์†Œ๋ฅผ ์žฌํ™œ์šฉํ•จ → ๊ฒฐ๊ตญ ๊ฐ’์„ ๋ณ€๊ฒฝํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ƒˆ๋กœ ๋งŒ๋“œ๋Š” ๋™์ž‘์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง

     

    ๊ฐ€๋ณ€์„ฑ?

    ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ๋Š” ๋ณ€์ˆ˜๋ฅผ ํ• ๋‹น ํ•  ๋•Œ

    var obj1 = {
    	a:1;
    	b:'bbb';
    };
    
    1. ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ณ€์ˆ˜ ์˜์—ญ์— ๋นˆ๊ณต๊ฐ„ (@1002)๋ฅผ ํ™•๋ณดํ•˜๊ณ  ๊ทธ ์ฃผ์†Œ์˜ ์ด๋ฆ„์„ obj1๋กœ ์ง€์ •
    2. ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ณต๊ฐ„(@5001)์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ ค๊ณ  ๋ณด๋‹ˆ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํ”„๋กœํผํ‹ฐ๊ฐ€ ์žˆ์Œ ๋”ฐ๋ผ์„œ ๋ณ„๋„์˜ ๋ณ€์ˆ˜ ์˜์—ญ์„ ๋งˆ๋ จํ•˜๊ณ  ๊ทธ ์ฃผ์†Œ(@7103~ ?)(←๊ฐ์ฒด์˜ ๋ณ€์ˆ˜ ์˜์—ญ)๋ฅผ @5001์— ์ €์žฅ
    3. @7103 ๋ฐ @7104์— ๊ฐ๊ฐ a์™€ b๋ผ๋Š” ํ”„๋กœํผํ‹ฐ ์ด๋ฆ„์„ ์ €์žฅ
    4. ๋ฐ์ดํ„ฐ ์˜์—ญ์— a์— ํ• ๋‹น๋œ 1์ด ์—†์œผ๋ฏ€๋กœ ์ž„์˜๋กœ @5003์— ์ €์žฅํ•˜๊ณ  ์ด ์ฃผ์†Œ๋ฅผ @7103์— ์ €์žฅ

    ์ฆ‰, ๊ฐ์ฒด์˜ ๋ณ€์ˆ˜ ์˜์—ญ์ด ๋ณ„๋„๋กœ ์กด์žฌํ•จ ์ด๊ฒƒ๋•Œ๋ฌธ์— ๊ฐ€๋ณ€์„ฑ์ด ์ƒ๊น€

     

    (๋‹จ ์ด๋–„ ๊ฐ€๋ณ€์ ์ด๋ผ๋Š” ๊ฒƒ์€ ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ทธ ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ๋งŒ ์„ค๋ฆฝ)

     

    ๐Ÿ’ก ๋ถˆ๋ณ€ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•? (๊นŠ์€ ๋ณต์‚ฌ)

    ์›๋ณธ ๋ฐ์ดํ„ฐ๋ฅผ ๋†”๋‘๊ณ  ์ƒˆ๋กœ ๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌํ•˜๋ฉด ๋จ → copyObject ํ•จ์ˆ˜๋ฅผ ์ด์šฉ

    var user ={
    	name: 'Jaenam',
    	gender: 'male';
    };
    
    var copyObject = function (target) {
    	var result = {};
    	for (var prop in target) {
    		result[prop] = target[prop];
    	}
    return result;
    };
    
    var user2 =copyobject(user);
    user2.name = 'Jung';
    
    

    ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์€ ์–•์€ ๋ณต์‚ฌ๋กœ ๋ฐ”๋กœ ์•„๋ž˜ ๋‹จ๊ณ„ ๊ฐ’๋งŒ ๋ณต์‚ฌ

    ๊นŠ์€ ๋ณต์‚ฌ๋Š” ๋‚ด๋ถ€์˜ ๊ฐ’์„ ํ•˜๋‚˜ํ•˜๋‚˜ ์ฐพ์•„์„œ ์ „๋ถ€ ๋ณต์‚ฌ

    var copyObjectDeep = function(target){
    	var result = {];
    if(typeof target === 'object' && target !== null){
    	for(var prop in target){
    	result[prop] = copyObjectDeep(target[prop]);
    	}
    }else{
    		result =target;
    	}
    	return result;
    }
    

     

    ๐Ÿ’กnull ๊ณผ undefined์˜ ์ฐจ์ด๊ฐ€ ๋ฌด์—‡์ผ๊นŒ?

    undefined๋Š” ์–ด๋–ค ๋ณ€์ˆ˜์— ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

    null์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ‘์—†์Œ’์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€์ž…

    ๋ช…์‹œ์ ์œผ๋กœ undefined๋ฅผ ๋Œ€์ž…ํ•˜๋ฉด ์•ˆ๋จ! ๋Œ€์‹  nulll์„ ๋Œ€์ž…

    undefined๊ฐ€ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฒฝ์šฐ

    1. ๋ฐ์ดํ„ฐ ์˜์—ญ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์€ ์‹๋ณ„์ž์— ์ ‘๊ทผ ์ฆ‰, ๊ฐ’์„ ๋Œ€์ž… X
    2. ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผ
    3. return ๋ฌธ์ด ์—†๊ฑฐ๋‚˜ ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜์˜ ์‹คํ–‰๊ฒฐ๊ณผ

    ๋Œ“๊ธ€