๐ก ๊ธฐ๋ณธํ ๋ฐ์ดํฐ์ ์ฐธ์กฐํ ๋ฐ์ดํฐ์ ์ฐจ์ด?
- ๊ธฐ๋ณธํ์ ๊ฐ์ด ๋ด๊ธด ์ฃผ์๊ฐ์ ๋ฐ๋ก ๋ณต์ (๋ณ์์ ๊ฐ์ ํ ๋นํ๊ธฐ ์ํด์๋ ์ฃผ์๊ฐ์ ๋ณต์ ํด์ผ ํจ )ํ๊ณ ์ฐธ์กฐํ์ ๊ฐ์ด ๋ด๊ธด ์ฃผ์๊ฐ๋ค๋ก ์ด๋ฃจ์ด์ง ๋ฌถ์์ ๊ฐ๋ฆฌํฌ๋ ์ฃผ์๊ฐ์ ๋ณต์ ํจ→ ์ฐธ์กฐํ์ ์ฃผ์๊ฐ์ ๋ณต์ ํ๋ ๊ณผ์ ์ ๋๋ฒ ๊ฑฐ์นจ
- ์์ ๋ด์ฉ๊ณผ ์ฐ๊ด๋์ด์ ๊ธฐ๋ณธํ์ ๋ถ๋ณ์ฑ์ ๋๊ณ ์ฐธ์กฐํ์ ๋ณดํต ๊ฐ๋ณ์ฑ์ ๋ (๋ถ๋ณ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์๋์ )
- ๋ถ๋ณ์ฑ์ด๋?
-๋ถ๋ณ์ฑ๊ณผ ๊ฐ๋ณ์ฑ์ ์ดํดํ๊ธฐ ์ํด์๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ์ฌ๋ผ๊ฐ๋ ์ง ์ดํด๊ฐ ํ์
<๋ฐ์ดํฐ ํ ๋น>
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';
};
- ๋ฉ๋ชจ๋ฆฌ์ ๋ณ์ ์์ญ์ ๋น๊ณต๊ฐ (@1002)๋ฅผ ํ๋ณดํ๊ณ ๊ทธ ์ฃผ์์ ์ด๋ฆ์ obj1๋ก ์ง์
- ๋ฐ์ดํฐ ์ ์ฅ ๊ณต๊ฐ(@5001)์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ค๊ณ ๋ณด๋ ์ฌ๋ฌ๊ฐ์ ํ๋กํผํฐ๊ฐ ์์ ๋ฐ๋ผ์ ๋ณ๋์ ๋ณ์ ์์ญ์ ๋ง๋ จํ๊ณ ๊ทธ ์ฃผ์(@7103~ ?)(←๊ฐ์ฒด์ ๋ณ์ ์์ญ)๋ฅผ @5001์ ์ ์ฅ
- @7103 ๋ฐ @7104์ ๊ฐ๊ฐ a์ b๋ผ๋ ํ๋กํผํฐ ์ด๋ฆ์ ์ ์ฅ
- ๋ฐ์ดํฐ ์์ญ์ 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๊ฐ ๋ฐํ๋๋ ๊ฒฝ์ฐ
- ๋ฐ์ดํฐ ์์ญ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ง์ ํ์ง ์์ ์๋ณ์์ ์ ๊ทผ ์ฆ, ๊ฐ์ ๋์ X
- ๊ฐ์ฒด ๋ด๋ถ์ ์กด์ฌํ์ง ์๋ ํ๋กํผํฐ์ ์ ๊ทผ
- return ๋ฌธ์ด ์๊ฑฐ๋ ํธ์ถ๋์ง ์๋ ํจ์์ ์คํ๊ฒฐ๊ณผ
'JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
\n์ด ํฌํจ๋ JSON ๋ฌธ์์ด JSON.parse์ ์๋ฌ (0) | 2023.08.22 |
---|---|
์ฌ์ง ์ ๋ก๋ํ๊ณ ์ ์กํ๊ธฐ (1) | 2023.07.17 |
์ฝ๋ฐฑ ํฌ ๐ฟ ์ด๋? (0) | 2023.03.28 |
๋๊ธ