MDN_์๋ฐ์คํฌ๋ฆฝํธ์ ์๋ฃํ >
1. Primitive Type
- ๋ ์ด์ ๋๋ ์ง ์ ์๋ single item (string, number, bigint, boolean, null, undefined, ES6 ๋ถํฐ ์ถ๊ฐ๋ symbol)
- ์์ ํ์ ์ ๋ณ์์ ํ ๋น๋ ๋, ๋ฉ๋ชจ๋ฆฌ์ ๊ณ ์ ํฌ๊ธฐ๋ก ์์ ๊ฐ์ ์ ์ฅํ๊ณ ํด๋น ์ ์ฅ๋ ๊ฐ์ ๋ณ์๊ฐ ์ง์ ์ ์ผ๋ก ๊ฐ๋ฆฌํค๋ ํํ๋ฅผ ๋๋ค.
- Object๋ฅผ ์ ์ธํ ๋ชจ๋ ๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ(immutable value)์ด๋ค. ์ฌํ ๋น ์ ๊ธฐ์กด ๊ฐ์ด ๋ณํ๋๊ฒ ์ฒ๋ผ ๋ณด์ผ์ง ๋ชฐ๋ผ๋ ์ฌ์ค ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌํ ๋นํ ๊ฐ์ด ์ ์ฅ๋๊ณ ๋ณ์๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฌ๋ผ์ก์ ๋ฟ์ด๋ค.
2. Object
single item๋ค์ ๋ฌถ์ด์ ํ ๋จ์๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฐ์ดํฐ ํ์ ์ผ๋ก key/value pair๋ฅผ ์ ์ฅํ ์ ์๋ ๊ตฌ์กฐ์ด๋ค.
2-1) ๊ฐ์ฒด์ ํน์ง
- ๊ฐ์ฒด๋ ๋ณ์์ด๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ฒด์๋ ๋ง์ ๊ฐ์ด ํฌํจ๋ ์ ์๋ค. (์๋ฐ์คํฌ๋ฆฝํธ ๋ณ์์ฒ๋ผ ๋จ์ผ ๊ฐ์ ํฌํจ ํ ์ ์๋ค.)
- Object๋ ๊ด๋ จ๋ ๋ฐ์ดํฐ์ ํจ์์ ์งํฉ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋ฌ ๋ฐ์ดํฐ์ ํจ์๋ก ์ด๋ฃจ์ด์ง๋๋ฐ, ๊ฐ์ฒด ์์ ์์ ๋๋ ๋ณดํต property์ method๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ๊ฐ์ฒด๋ ์ค๊ดํธ{ } ํ๊ธฐ๋ฅผ ์ด์ฉํ์ฌ ๋ง๋ค ์ ์๋ค.
- ๊ฐ์ฒด๋ ๊ฐ๊ฐ์ key/value์ ๋ํ ์ ๋ณด๋ฅผ ๋์ดํ ์ ์๋ค.
- Key๋ ๋ฌธ์์ด ๋๋ ๊ธฐํธ์ฌ์ผ ํ๋ค.
- Value๋ JS์์ ์ง์ํ๋ ๋ชจ๋ ์ ํ์ด ๋ ์ ์๋ค.
- ๊ฐ์ฒด ๋ณ์๋ฅผ ๋ณต์ฌํ๋ฉด ๊ฐ์ฒด๊ฐ ๋ณต์ ๋์ง ์๊ณ ์ฐธ์กฐ๊ฐ ๋ณต์ฌ๋๋ค.
2-2) Property
ํ๋กํผํฐ๋ ๊ฐ์ฒด์ ์์ฑ์ ๋ํ๋ด๋ ์ ๊ทผ ๊ฐ๋ฅํ ์ด๋ฆ๊ณผ ํ์ฉ ๊ฐ๋ฅํ ๊ฐ์ ๊ฐ์ง๋ ํน๋ณํ ํํ์ด๋ค. ํน์ ๊ฐ์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ ๋ณด๋ฅผ ํ๊ณ ์์ด ๊ทธ ๊ฐ์ฒด๊ฐ ๊ฐ์ง ์ ๋ณด์ ์ง์ ์ ์ผ๋ก ์ ๊ทผํ ์ ์๊ฒ ํด์ค๋ค.
ํ๋กํผํฐ์ ํํ
{name : value}
//name : ๋น ๋ฌธ์์ด์ ํฌํจํ ๋ชจ๋ ๋ฌธ์์ด ๋๋ symbol ๊ฐ
//value : ๋ชจ๋ ๊ฐ(JS์์ ์ง์ํ๋ ํ์
์์ฑ)
ex)
var book = {
title : "์ฑ
",
point : {
ten : 10,
bonus : 200
}
}
ํ๋กํผํฐ ์์ฑ ๋ฐฉ๋ฒ
#1. ์ (.)๊ณผ ํ๋กํผํฐ ์ด๋ฆ ์ฌ์ฉ
var book = {};
book.title = "JS์ฑ
";
#2. ๋๊ดํธ ์ฌ์ฉ : obj["abc"]
var book = {};
book[title] = "JS์ฑ
";
#1. abc ๋ณ์ ์ด๋ฆ ์์ฑ : obj[abc]
var book = {title : "JS์ฑ
"};
var varName = "title";
book[varName] = "HTML";
2-3) Method
- ๋ฉ์๋๋ ๊ฐ์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ๋์์ด๋ฉฐ ๊ฐ์ฒด ๋ด์ ํจ์๋ฅผ ๋ฉ์๋๋ผ ์นญํ๋ค.
- ๋ฉ์๋์ ํจ์์ ์ฐจ์ด์ : ๋ฉ์๋๋ ๊ฐ์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ๋์์ด๊ธฐ ๋๋ฌธ์ ๋ฉ์๋๋ฅผ ์ํํ๊ธฐ ์ํด์๋ ๊ฐ์ฒด๋ฅผ ํตํด์ ํด๋น ๋ฉ์๋๋ฅผ ์ํํด์ผ ํ๋ฉฐ ๊ทธ ๋์์ ์ํํ๋ ์ฃผ์ฒด๋ ๊ฐ์ฒด์ด๋ค.
2-4) ๊ฐ์ฒด ๊ตฌ์ฑ
- JavaScript ๋ด์ฅ ๊ฐ์ฒด ( built-in object) : MDN_ํ์ค ๋ด์ฅ ๊ฐ์ฒด >
- ๋ธ๋ผ์ฐ์ ๋ด์ฅ ๊ฐ์ฒด ( native object )
- ์ฌ์ฉ์ ์ ์ ๊ฐ์ฒด ( host object )
3. Function
- ํน์ ๊ธฐ๋ฅ์ ์ฒ๋ฆฌํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ๋ฌถ์
- first-class function : ์๋ฐ์คํฌ๋ฆฝํธ์์๋ function๋ ๋ค๋ฅธ ๋ฐ์ดํฐ ํ์ ์ฒ๋ผ ๋ณ์์ ํ ๋น์ด ๊ฐ๋ฅํ๊ณ , ํจ์์ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌ์ด ๋๊ณ , ํจ์์ returnํ์ ์ผ๋ก function์ ๋ฐํํ ์ ์๋ค.
ํจ์ ํํ
- ํจ์๋ (function ํค์๋, ํจ์ ์ด๋ฆ, parameter, ํจ์ body)๋ก ๊ตฌ์ฑ๋๋ค.
- ํจ์์ ์ด๋ฆ์ ์๋งจํฑ์ ๋ถ์ฌํ์ฌ ์๋ช ํ๋ ๊ฒ์ด ์ข๊ณ , ์ด๋ฆ์ ๋ ๊ฐ ์ด์์ ๋จ์ด๋ฅผ ์ฌ์ฉํ ๋ CamelCaseํํ๋ก ์๋ช ํ๋ค.
#1
function book(){
//code
}
#2
var point = function(one, two){
//code
}
ํจ์ ์์ฑ
๋ค๋ฅธ ๋ชจ๋ object๋ค์ฒ๋ผ new์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ function ์ค๋ธ์ ํธ๋ฅผ ์์ฑํ ์ ์๋ค.
var adder = new Function('a', 'b', 'return a+b');
adder(2, 6); //8
'๐ฐ ์ธ์ด > JS - ๋น๊ธฐ๋ ํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
for()๊ณผ forEach() (0) | 2021.05.24 |
---|---|
ํจ์ ํ๋กํผํฐ - call, apply/ bind (0) | 2021.05.24 |
์ค๋ธ์ ํธ ํ๋กํ ํ์ (0) | 2021.05.23 |
new ์ฐ์ฐ์ (0) | 2021.05.17 |
๋ณ์ ์ ์ธ (var, let, const) (0) | 2021.05.16 |