2.1 const, let์ ์ด์ฉํ ๋ณ์ ์ ์ธ
var๋ฅผ ์ด์ฉํ ๋ณ์ ์ ์ธ์ ๋ฌธ์ ์
- ๋ฎ์ด์ฐ๊ธฐ ๊ฐ๋ฅ : ํ ๋ฒ ์ ์ํ ๋ณ์์ ๋ค๋ฅธ ๊ฐ์ ๋์ ํ ์ ์์(์๋ํ์ง ์๊ฒ ๋ฎ์ด์จ์ง ์ ์๊ธฐ์ ๋ฌด์กฐ๊ฑด ๋ฎ์ด์ฐ๋ ๊ฒ์ ์ข์ง ์์)
- ์ฌ์ ์ธ ๊ฐ๋ฅ : ํ๋ก๊ทธ๋จ ์คํ ์์์ ๋ฐ๋ผ ์ด๋ ๋ณ์๊ฐ ์ฌ์ฉ๋๋์ง ํด์ํ๊ธฐ ์ด๋ ค์
(var๊ฐ '๋ณ์'๋ผ๋ ๋ป์ด๊ธฐ์ ๋ ๋ค ๋ณ๋ ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐ, var๋ ์์ฃผ ์ฌ์ฉํ์ง ์์)
let์ ์ด์ฉํ ๋ณ์ ์ ์ธ
- ๋ฎ์ด ์ฐ๊ธฐ ๊ฐ๋ฅ
- ์ฌ์ ์ธ ๋ถ๊ฐ๋ฅ
(let์ด 'OO์ด๋ผ ํ์~'๋ผ๋ ๋ป์ด๊ธฐ์ ์ ์ธ์ ํ ๋ฒ ํ๊ณ , ๋ฎ์ด์ฐ๊ธฐ๋ ๊ฐ๋ฅํ var๊ฐ ์ ์ธ๋์๋ค๊ณ ์๊ฐ)
let v1 = 3;
console.log(v1) // 3
v1 = "๋ฌธ์์ด๋ก ๋ฎ์ด์จ๋ฒ๋ฆฌ๊ธฐ~~";
console.log(v1) // ๋ฌธ์์ด๋ก ๋ฎ์ด์จ๋ฒ๋ฆฌ๊ธฐ~~
type์ด ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋ฎ์ด์ฐ๊ธฐ ๊ฐ๋ฅ

์ฌ์ ์ธ ๋ถ๊ฐ๋ฅ
const๋ฅผ ์ด์ฉํ ๋ณ์ ์ ์ธ : ๊ฐ์ฅ ์๊ฒฉํ ์ ์ธ
- ๋ฎ์ด ์ฐ๊ธฐ ๋ถ๊ฐ๋ฅ
- ์ฌ์ ์ธ ๋ถ๊ฐ๋ฅ
(const๊ฐ '๋ถ๋ณ์'๋ผ๋ ๋ป์ด๊ธฐ์ ๋ชจ๋ ๋ถ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐ)
const v1 = 3;
console.log(v1)
v1 = "๋ฌธ์์ด๋ก ๋ฎ์ด์จ๋ฒ๋ฆฌ๊ธฐ~~"; //TypeError: Assignment to constant variable.
console.log(v1) ;

const๋ก ์ ์ํ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ์?
- primitive type
- ๋ ผ๋ฆฟ๊ฐ(Boolean): true/false
- ์์น(Number): 1, 2.5, ...
- ํฐ ์์น(BigInt): 93248230948n
- ๋ฌธ์์ด(String): "javascript", 'java'
- undefiend: ๋ฏธ์ ์
- null: ๊ฐ ์์
- Symbol: ์ ์ผํ๋ฉฐ ๋ฐ๊ฟ ์ ์๋ ๊ฐ
- object type
- ๊ฐ์ฒด
- ๋ฐฐ์ด
- ํจ์
- ๋ฑ primitive type ์ด์ธ์ ๊ฒ
๊ฐ์ฒด Case - ๊ธฐ๋ณธ์ ์ผ๋ก const ์ ์ธ
// ๊ฐ์ฒด ์ ์
const obj = {
name: "์น์ง๋์ด",
age: 28,
};
// ์์ฑ๊ฐ ๋ณ๊ฒฝ
obj.age = 20
console.log(obj) //{ name: '์น์ง๋์ด', age: 20 }
// ์์ฑ๊ฐ ์ถ๊ฐ
obj.address = "jungle"
console.log(obj) //{ name: '์น์ง๋์ด', age: 20, address: 'jungle' }
// ๋ฐฐ์ด ์ ์
const arr = ["dog", "cat"];
console.log(arr) // [ 'dog', 'cat' ]
// ์ฒซ ๋ฒ์งธ ๊ฐ ๋ณ๊ฒฝ
arr[0] = "puppy";
console.log(arr) // [ 'puppy', 'cat' ]
// ๊ฐ ์ถ๊ฐ
arr.push("monkey");
console.log(arr) // [ 'puppy', 'cat', 'monkey' ]
๋ฆฌ์กํธ ๊ฐ๋ฐ์์ ์ด์ฉํ๋ ๋ณ์ ์ ์ธ
var, let, const ์ค ๋ฆฌ์กํธ ๊ฐ๋ฐ์์๋ const๋ฅผ ๊ฐ์ฅ ๋ง์ด ์ด์ฉํ๋ค.
๊ฐ์ฒด, ๋ฐฐ์ด์ const๋ก ์ ์ธํ๋๋ผ๋ ์์ฑ์ ๋ณ๊ฒฝํ ์ ์๋ค. ๋ฆฌ์กํธ ๊ฐ๋ฐ์์ ๋์ ์ผ๋ก ๋ฐ๋๋ ๊ฐ์ 'State(4.6์ )'๋ผ๋ ๋ค๋ฅธ ๊ฐ๋ ์ผ๋ก ๊ฐ์ ๊ด๋ฆฌํ๋ค.
๐ก๊ทธ๋์ ๋ฆฌ์กํธ์์๋ ๋๋ถ๋ถ const๋ฅผ ์ด์ฉํ๊ณ , State๋ก ๊ด๋ฆฌํ์ง ์์ผ๋ฉด์ ์ฒ๋ฆฌ ๋์ค ๊ฐ์ ๋ฎ์ด์จ์ผ ํ๋ ๋ณ์๋ง let์ผ๋ก ์ ์ธํ๋ค.
2.2 ํ ํ๋ฆฟ ๋ฌธ์์ด(ES2015 ์ดํ)
// ์ด๋ฆ ์ ์ฅ ๋ณ์
let name2 = "์น์ง๋์ด";
// ๋์ด ์ ์ฅ ๋ณ์
let age = 28;
// ๋๋ '๋์ด'์ด '์ด๋ฆ'์
๋๋ค. ์ถ๋ ฅ
console.log(`๋๋ ${age}์ด ${name2}์
๋๋ค`); // ๋๋ 28์ด ์น์ง๋์ด์
๋๋ค
console.log("๋๋ " + age + "์ด " + name2 + "์
๋๋ค"); // ๋๋ 28์ด ์น์ง๋์ด์
๋๋ค
๋ฐฑํฑ(`) ๋ฌธ์์ด ์์ ${ } ํํ์ ์ ์ชฝ์๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ ๋ ฅํ ์ ์๋ค. ๋ฐ๋ผ์ ์์ ์ฝ๋์ฒ๋ผ ${name}์ผ๋ก ๋ณ์๋ฅผ ์ ๊ฐํ ์ ์๋ค. ์ด๋ฅผ ํ ํ๋ฆฟ ๋ฌธ์์ด์ด๋ผ๊ณ ํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌธ์์ด๊ณผ ๋ณ์๋ฅผ ๊ฒฐํฉํ๋ ๋ฐฉ๋ฒ(๋ง์ง๋ง log)๋ ๊ฐ๋ฅํ๋ค.
2.3 ํ์ดํ ํจ์arrow function ( ) => { } (EX2015 ์ดํ)
์๋ก์ด ํจ์ ํ๊ธฐ๋ฒ์ผ๋ก ๊ธฐ์กด๋ณด๋ค ๊ฐ๋จํ๊ฒ ํจ์๋ฅผ ๊ธฐ์ ํ ์ ์๋ค.
๊ธฐ์กด ํจ์
// ๊ธฐ์กด ํจ์ ์ ์
function func1(value) {
return value;
}
console.log(func1("์ธํ value")); // ์ธํ value
// ํจ์๋ฅผ ๋ณ์๋ก ์ ์
const func2 = function (value){
return value;
}
console.log(func2("ํจ์๋ฅผ ๋ณ์๋ก ์ ์")); // ํจ์๋ฅผ ๋ณ์๋ก ์ ์
ํจ์๋ฅผ ์ ์ํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์์๋ณด์๋ค.
ํ์ดํ ํจ์
// ํ์ดํ ํจ์ ์ ์
const func1 = value => {
return value;
}
// ์คํ ๊ฒฐ๊ณผ ์ถ๋ ฅ
console.log(func1("๋ฐธ๋ฅ")); // ๋ฐธ๋ฅ
// ํ์ดํ ํจ์ ์ ์2
const func2 = (val1, val2) => {
return val1 + val2;
}
// ์คํ ๊ฒฐ๊ณผ ์ถ๋ ฅ
console.log(func2("๋ฐธ๋ฅ1", "๋ฐธ๋ฅ2")); // ๋ฐธ๋ฅ1๋ฐธ๋ฅ2
// ํ์ดํ ํจ์ ์ ์3
const func3 = (val1, val2) => val1 + val2
// ์คํ ๊ฒฐ๊ณผ ์ถ๋ ฅ
console.log(func3("๋ฐธ๋ฅ1", "๋ฐธ๋ฅ2")); // ๋ฐธ๋ฅ1๋ฐธ๋ฅ2
- ํ์ดํ ํจ์ ์ ์1
- value๊ฐ 'ํ ๊ฐ'์ธ ๊ฒฝ์ฐ ์๊ดํธ ์์ด ์์ฑ ๊ฐ๋ฅ!
- ํ์ดํ ํจ์ ์ ์ 2
- value ์์๊ฐ '๋ ๊ฐ' ์ด์์ธ ๊ฒฝ์ฐ ์๊ดํธ ์์ฑ ํ์
- ํ์ดํ ํจ์ ์ ์ 3
- ์ฆ์ return ํ๋ ํํ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
- ํ์ดํ ํจ์ ์ ์ 4
๋ฐํ ๊ฐ์ด ์ฌ๋ฌ ํ์ผ ๊ฒฝ์ฐ ( )๋ก ๊ฐ์ผ ๋ค ๋จ์ผ ํ๊ณผ ๊ฐ์ด ๋ชจ์์ ๋ฐํํ ์ ์๋ค.
// ๊ดํธ๋ก ๊ฐ์ธ์ ๋ชจ์ ๋ค ์๋ตํด์ ๋ฐํ
const func4 = (val1, val2) => (
{
name: val1,
age: val2,
}
)
// ์คํ ๊ฒฐ๊ณผ ์ถ๋ ฅ
console.log(func4("seungineer", 280)); // { name: 'seungineer', age: 280 }
์ด ๋ฐฉ๋ฒ์ ๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃฐ ๋ ์์ฃผ ์ฌ์ฉ๋๋ฏ๋ก ์ฝ๋๋ฅผ ๋ณด๋ ์ฆ์ ์๋ฏธ๋ฅผ ์ ์ ์๋๋ก ์๋ฏธ๋ฅผ ์ตํ๋๋ ๊ฒ ์ข๋ค.
2.4 ๋ถํ ๋์ { } [ ]
๋ถํ ๋์ ์ด๋, ๊ฐ์ฒด๋ ๋ฐฐ์ด๋ก๋ถํฐ ๊ฐ์ ์ถ์ถํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด๋ค. ๋ถํ ๋์ ์ ํ์ฉํ์ง ์์ case๋ฅผ ๋จผ์ ๋ณด๋ฉด์ ์์๋ณธ๋ค.
const myProfile = {
name: "seungineer",
age: 24,
}
const message = `์ ์ ๋๋ค์์ ${myProfile.name}์ด๊ณ , ${myProfile.age}์ด์
๋๋ค.`
console.log(message) // ์ ์ ๋๋ค์์ seungineer์ด๊ณ , 24์ด์
๋๋ค.
๋ฐฑํฑ ๋ด์ ํฌํจ๋์ด ์๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ณด๋ฉด ๊ฐ์ฒด์ name๊ณผ age๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด์ '๊ฐ์ฒด๋ช .์์ฑ๋ช ' ํํ๋ก ๊ฐ์ฒด๋ช ์ ๋ฐ๋ณตํด์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ๊ฐ์ฒด ๋ณ์๋ช ์ด ๋ ๊ธธ์ด์ง๊ณ , ์ ๋ ฅํด์ผ ํ๋ ๊ณณ์ด ๋ง์์ง ๊ฒฝ์ฐ ๊ฐ๋ ์ฑ ๋ฐ ์กฐ์์ฑ ์ธก๋ฉด์์ ๋จ์ด์ง ๊ฒ์ด๋ค.
๊ฐ์ฒด ๋ถํ ๋์
const myProfile = {
name: "seungineer",
age: 24,
address: "jungle",
}
const {age, name} = myProfile; // ๋ถํ ๋์
const message = `์ ์ ๋๋ค์์ ${name}์ด๊ณ , ${age}์ด์
๋๋ค.`
console.log(message) // ์ ์ ๋๋ค์์ seungineer์ด๊ณ , 24์ด์
๋๋ค.
์ ์ฝ๋์ ๊ฐ์ด '๋ถํ ๋์ '์ ํ๋ฉด ์๋์ ๊ฐ์ด ์์ฑ ๊ฐ๋ฅํ๋ค.
- ์์๋ฅผ ๋ฐ๊พธ์ด์ ์ถ์ถ ๊ฐ๋ฅ
- ๊ฐ์ฒด์ ์ผ๋ถ ์์ฑ๋ง ์ถ์ถ ๊ฐ๋ฅ
const myProfile = {
name: "seungineer",
age: 24,
address: "jungle",
}
// ์ฝ๋ก ์ผ๋ก ๋ค๋ฅธ ๋ณ์๋ช
์ ์ด์ฉํ ์ ์์
const {age: newAge, name: newName} = myProfile;
const message = `์ ์ ๋๋ค์์ ${newName}์ด๊ณ , ${newAge}์ด์
๋๋ค.`
console.log(message) // ์ ์ ๋๋ค์์ seungineer์ด๊ณ , 24์ด์
๋๋ค.
์ถ์ถํ ์์ฑ์ ๋ณ๋ช ์ ๋ถ์ด๊ณ ์ถ์ ๋๋ ๋ค์๊ณผ ๊ฐ์ด :(์ฝ๋ก )์ ์ด์ฉํด์ ํด๋น ๋ณ์๋ช ์ผ๋ก ์ด์ฉ์ด ๊ฐ๋ฅํ๋ค.
๋ฐฐ์ด ๋ถํ ๋์
const myProfile = ["seungineer", 28]
const message = `์ ์ ๋๋ค์์ ${myProfile[0]}์ด๊ณ , ${myProfile[1]}์ด์
๋๋ค.`
console.log(message) // ์ ์ ๋๋ค์์ seungineer์ด๊ณ , 28์ด์
๋๋ค.
myProfile์ด๋ผ๊ณ ํ๋ ๋ฐฐ์ด์ index๋ก ์ ๊ทผํด์ ๋ฐฐ์ด์ ๊ฐ์ ํ์ฉํ๋ ์์ด๋ค. ์ฌ๊ธฐ์ ๋ถํ ๋์ ์ ์ด์ฉํด ๋์ผํ ์ฒ๋ฆฌ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ํ ์ ์๋ค.
const myProfile = ["seungineer", 28]
const [newName, newAge] = myProfile;
const message = `์ ์ ๋๋ค์์ ${newName}์ด๊ณ , ${newAge}์ด์
๋๋ค.`
console.log(message) // ์ ์ ๋๋ค์์ seungineer์ด๊ณ , 28์ด์
๋๋ค.
๋ถํ ๋์ ์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด myProfile ๊ฐ์ฒด ๋ด์ ์์๋๋ก ๋ฐฐ์ด์ ํ ๋น๋๋ ๊ฒ์ ์ ์ ์๋ค. ๊ฐ์ฒด์ ๋ฌ๋ฆฌ ์์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ผ๋ฉฐ ์ง์ ์ค์ ํ ๋ณ์๋ช (newName, newAge)์ ์ฌ์ฉํ ์ ์๋ค. ์ธ๋ฑ์ค ์ค๊ฐ๊น์ง๋ง ํ์ํ ๊ฒฝ์ฐ์๋ ์ดํ ์์๋ฅผ ์๋ตํ ์๋ ์๋ค. ๋ฆฌ์กํธ์ ๋งค์ฐ ์์ฃผ ์ฌ์ฉ๋๋ฏ๋ก ๊ผญ ๊ธฐ์ตํ ๊ฒ!
2.5 ๋ํดํธ๊ฐ=
๋ํดํธ๊ฐ์ 'ํจ์์ ์ธ์'๋ '๊ฐ์ฒด๋ฅผ ๋ถํ ๋์ 'ํ ๊ฒฝ์ฐ ์ค์ ํด ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. ๊ฐ์ด ์กด์ฌํ์ง ์์ ๋ ์ด๊น๊ฐ์ผ ์ค์ ํ ์ ์์ด ๋์ฑ ์์ ํ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
์ธ์์ ๋ํดํธ๊ฐ
const sayHello = (name = "Guest") => console.log(`์๋
ํ์ธ์. ${name}๋.`)
sayHello() // ์๋
ํ์ธ์. Guest๋.
์ ์ฝ๋์ ๊ฐ์ด ์ด๋ค ์ธ์๋ ๋ค์ด๊ฐ์ง ์์์ ๋์ name ๋ณ์์๋ "Guest"๋ก ํ ๋น๋๋๋ก ํ ์ ์๋ค. ๋ง์ฝ ์ ์ฒ๋ฆด๋ฅด ํ์ง ์์ ๊ฒฝ์ฐ name log ์ undefiened๋ก ๋ํ๋๊ฒ ๋๋ค.
๊ฐ์ฒด ๋ถํ ๋์ ์์ ๋ํดํธ๊ฐ
const myProfile = {
age: 28,
}
const {name = "default"} = myProfile;
console.log(`${name}`);
์ธ์ case์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ณ์๋ช ๋ค์ '='๋ก ๊ฐ์ ์ค์ ํ๋ฉด(์์ ์ฝ๋๋ 'default'), ๋ํดํธ๊ฐ์ด log๋๋ ๊ฒ์ ์ ์ ์๋ค. ์ด๋ ์ธ์ ๋์ ๋ง์ฐฌ๊ฐ์ง์ด๋ค. ์ด๋ ๋ฆฌ์กํธ์์๋ ์์ฃผ ์ฌ์ฉ๋๋ ๊ฐ๋ ์ด๋ฏ๋ก ๋ฐ๋์ ์์งํด์ผ ํจ.
2.6 ์คํ๋ ๋ ๊ตฌ๋ฌธ ...
์คํ๋ ๋ ๊ตฌ๋ฌธ์ ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ์ด์ฉํ ์ ์๋ ํ๊ธฐ๋ฒ์ด๋ค.
์์ ์ ๊ฐ
const arr1 = [1, 2]
console.log(arr1) // [1, 2]
console.log(...arr1) // 1 2
๋ด๋ถ ์์์ ์์ฐจ์ ์ ๊ฐ
const arr = [1, 2];
const func1 = (val1, val2) => val1 + val2;
console.log(func1(arr[0], arr[1])); // 3
console.log(func1(...arr)); // 3
์์ ์ ๊ฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ฝ๋์ ๊ฐ์ด ํ ๋ฒ์ ์ธ์๋ฅผ ์ ๊ฐํ ์ ์๋ค.
์์ ๋ชจ์ผ๊ธฐ
์คํ๋ ๋ ๊ตฌ๋ฌธ์ ์์๋ฅผ ๋ชจ์ผ๋ ๋ฐ๋ ํ์ฉํ ์ ์๋ค.
const arr1 = [1, 2, 3, 4, 5, 6]
const [num1, num2, ...left] = arr1
console.log(num1) // 1
console.log(num2) // 2
console.log(left) // [ 3, 4, 5, 6 ] (์์ ๋ชจ์ผ๊ธฐ)
console.log(arr1) // [ 1, 2, 3, 4, 5, 6 ]
์์ ๋ณต์ฌ์ ๊ฒฐํฉ
const arrA = [1, 2, 3, 4]
const arrB = [5, 6, 7, 8]
const arrAB = [...arrA, ...arrB]
console.log(arrAB) // [1, 2, 3, 4, 5, 6, 7, 8]
const arrApB = arrA + arrB
console.log(arrApB) // 1,2,3,45,6,7,8
console.log(arrApB[0]) // 1
console.log(arrApB[1]) // ,
console.log(arrApB[2]) // 2
console.log(arrApB[3]) // ,
์คํ๋ ๋ ๊ตฌ๋ฌธ์ ์ฌ์ฉํด์ arrAB์ ์์๋ฅผ ๊ฒฐํฉํ ์ ์์๋ค. ๋จ์ํ ๋ ๋ฐฐ์ด์ ๋ํ ๊ฒฝ์ฐ ๋ฐฐ์ด์ ํํ๋ก ์ถ๋ ฅ๋๋ ๊ฒ ์๋๋ผ ๊ฐ๊ฐ์ ๋ฐฐ์ด์ ๋ฌธ์์ด๋ก ์ถ๋ ฅํ๋ค.
const obj1 = {
val1: 10,
val2: 20,
};
const obj2 = {
val3: 30,
val4: 40,
};
const obj11 = {...obj1}
obj1obj2 = {...obj1, ...obj2};
console.log(obj11) // { val1: 10, val2: 20 }
console.log(obj1obj2) // { val1: 10, val2: 20, val3: 30, val4: 40 }
์ ์ฝ๋์ ๊ฐ์ด ์คํ๋ ๋ ๊ตฌ๋ฌธ์ ๊ฐ์ฒด์ ์ด์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ ์ ์๋ค.
๊ทธ๋ ๋ค๋ฉด, ๋ฑํธ(=)๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์ฌํ๋ ๊ฒ์ ์ ๋ ๊น? ๋ฑํธ๋ก ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ๋ ๊ฒฝ์ฐ '์ฐธ์กฐ๊ฐ ์ญ์ ์์'๋๊ธฐ ๋๋ฌธ์ ์๋ํ ๋ฐ์ ๋ค๋ฅด๊ฒ ๋์ํ ์ ์๋ค.
// ๋ฑํธ๋ฅผ ์ด์ฉํ ๋ณต์ฌ ์
const obj1 = {
val1: 10,
val2: 20,
};
const obj11 = obj1
obj11.val2 = 200;
console.log(obj11) // { val1: 10, val2: 200 }
console.log(obj1) // { val1: 10, val2: 200 }
2.7 ๊ฐ์ฒด ์๋ต ํ๊ธฐ๋ฒ
๊ฐ์ฒด ๊ธฐ์ ๋ฐฉ๋ฒ ์ค ์ผํธํธ๋(์๋ตํํ, shorthand)๊ฐ ์๋ค. '๊ฐ์ฒด์ ์์ฑ๋ช '๊ณผ '์ค์ ํ ๋ณ์๋ช '์ด ๊ฐ์ ๋ ์๋ต ๊ฐ๋ฅํ๋ค.
const name = "seungineer";
const age = 280;
const user = {
name: name,
age: age,
}
const user2 = {
name,
age,
}
console.log(user); // { name: 'seungineer', age: 280 }
console.log(user2); // { name: 'seungineer', age: 280 }
์ ์ฝ๋์์ user1์ ๊ฒฝ์ฐ ๊ฐ์ฅ ํ์ค์ ์ธ ์์ฑ๋ฒ์ด๋ฉฐ, user2์ ๊ฒฝ์ฐ '๊ฐ์ฒด์ ์์ฑ๋ช '๊ณผ '์ค์ ํ ๋ณ์๋ช '์ด ๊ฐ์ผ๋ฏ๋ก ์๋ตํ ๊ฒฝ์ฐ์ด๋ค.
2.8 map, filter
๋ฐฐ์ด ์ฒ๋ฆฌ์์ ์์ฃผ ์ฌ์ฉ๋๋ค.
๊ธฐ์กด for๋ฌธ
const nameArr = ["seungineer", "์น์ง๋์ด"]
for (let idx = 0; idx < nameArr.length; idx++) {
console.log(nameArr[idx])
}
// seungineer
// ์น์ง๋์ด
๋ฐฐ์ด์ ์์ ์๋งํผ ๋ฃจํ ์ฒ๋ฆฌ๋ฅผ ์คํํ๋ค. ๊ตฌ๋ฌธ์ด ๋ค์ ๋ณต์กํ๊ณ ์ฝ๋ ์๋ ๋์ด๋ ์ ๋ฐ์ ์๋ค.
map ํจ์ ์ด์ฉ ๋ฐฉ๋ฒ
map ํจ์์์๋ ๋ฐฐ์ด์ ์์๋๋ก ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด๋ก ๋ฐ์ ์ ์๋ค.
// ๋ฐฐ์ด ์ ์
const nameArr = ["seungineer", "์น์ง๋์ด"];
// map์ ์ด์ฉํ ๋ฐฐ์ด ์ฒ๋ฆฌ
const nameArr2 = nameArr.map((name) => {
console.log(name)
});
const testArr = [1, 2, 3]
const mappedArr = testArr.map(()=>{})
console.log(mappedArr) // [ undefined, undefined, undefined ]
const testArr2 = [1, 2, 3]
const mappedArr2 = testArr.map((val)=>{
val = 1;
return val})
console.log(mappedArr2) // [ 1, 1, 1 ]
testArr.map(()=>{}) ํํ๋ก ์ถ๋ ฅํ๋ฉด undefiend๋ก testArr์ ์์ ์ ๋งํผ ๋ฆฌ์คํธ๊ฐ ๋ง๋ค์ด์ง๋ ๊ฒ์ ์ ์ ์๋ค. ์ฆ, ๋ฐฐ์ด์ ๊ฐ ์์์ ()์ ๋ณ์๋ก ํ๋์ฉ ์ ๊ทผํ์ฌ {}๊ฐ ์คํ๋๋ฉฐ ๋ฐฐ์ด๋ก ๋ง๋๋ ๊ฒ์ ์ ์ ์๋ค.
mappedArr2 ๋ณ์๋ฅผ ํตํด ์ด๋ฅผ ์ง๊ด์ ์ผ๋ก ์ ์ ์๋ค.
// for๋ฌธ ์์ด ๋ฐฐ์ด์ ๋ชจ๋ ์์ ์์ฐจ์ ์ผ๋ก ์ถ๋ ฅ
const arr = ["seungineer", "์น์ง๋์ด"]
arr.map((val)=>{console.log(val)})
// seungineer
// ์น์ง๋์ด
๐ก .map((value)=>{ }) ํํ๋ก ๋ฐฐ์ด ๊ฐ ์์๋ฅผ for๋ฌธ ์์ด ์ฒ๋ฆฌํ ์ ์๋ค!
filter ํจ์ ์ด์ฉ ๋ฐฉ๋ฒ
map ํจ์์ ๋์ผํ์ง๋ง return ๋ค์ ์กฐ๊ฑด์์ด true์ธ ์์๋ง ๋ฐํํ๋ค.
// ์ซ์๊ฐ ์ ์ฅ๋ ๋ฐฐ์ด์์ ํ์๋ง ์ถ์ถํ๋ ์
const numArr = [1, 2, 3, 4, 5];
const oddArr = numArr.filter((num) => {
return num % 2 === 1;
});
console.log(oddArr) // [1, 3, 5]
(์ฐธ๊ณ ) map, filter ํจ์์์ ๋ ๋ฒ์งธ ์ธ์์๋ index ๊ฐ์ด ๋ค์ด๊ฐ๋ค!
const arr = ["seoul", "busan", "daejeon"]
arr.map((city, idx)=> {
console.log(`${city}๋ ${idx+1}๋ฒ ์งธ ๋์์ด๋ค.`);
})
// seoul๋ 1๋ฒ ์งธ ๋์์ด๋ค.
// busan๋ 2๋ฒ ์งธ ๋์์ด๋ค.
// daejeon๋ 3๋ฒ ์งธ ๋์์ด๋ค.
map์ ์ด์ฉํ ์์
- ๋์๋ค, ์ฌํค์ค์นด, ๊ณ ํ ์ ์ด๋ฆ์ด ์ ์ฅ๋ ๋ฐฐ์ด์ด ์๋ค. ๋์๋ค ์ด์ธ์ ์ด๋ฆ ๋ค์๋ '๋'์ ๋ถ์ธ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ์.
const namelist = ["๋์๋ค", "์ฌํค์ค์นด", "๊ณ ํ "]
const newArr = namelist.map((name)=>{
if (name === "๋์๋ค"){
return name
} else{
return `${name}๋`
}
});
console.log(newArr) // [ '๋์๋ค', '์ฌํค์ค์นด๋', '๊ณ ํ ๋' ]