๐Ÿฑ React๋ฅผ ์ž์ฃผ์“ฐ๋Š” javascript ๋ฌธ๋ฒ•

๋ฐ•์ค€์„ยท2022๋…„ 10์›” 15์ผ
1

React

๋ชฉ๋ก ๋ณด๊ธฐ
3/13
post-thumbnail

๐Ÿฑ React๋ฅผ ์“ฐ๋‹ค๋ณด๋ฉด ์ž์ฃผ์“ฐ๋Š” ES6 ๋ฌธ๋ฒ•์ด ์žˆ๋‹ค. ์ด๊ฒƒ๋งŒ์€ ์•Œ์•„๋ณด์ž.

๐Ÿ”ฅ object shorthand

ES6์—์„œ๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ๋ถˆํ•„์š”ํ•œ ๋ฐ˜๋ณต์„ ์—†์•ด๋‹ค. key, value ํ˜•์‹์œผ๋กœ object์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค๋ฉด, shorthand๋ฐฉ์‹์œผ๋กœ๋„ ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค. ํ•จ์ˆ˜์—์„œ๋Š” ๋ฐ˜ํ™˜ํ•˜๋Š” ํ˜•์‹์—์„œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ์ฒด ๊ทธ ์ž์ฒด๋ฅผ ์ •์˜ํ•˜๋Š”๋ฐ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌผ๋ก , ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ ๋ช…๊ณผ ์ง€์—ญ๋ณ€์ˆ˜์˜ ๋ช…์ด ๊ฐ™์•„์•ผ ํ•œ๋‹ค.

let name = "gildong";
let age = 17;

let person ={
    // name: name, //๋งŒ์•ฝ ์ด๋ ‡๊ฒŒ ํ‚ค์™€ ํ‚ค๊ฐ’์ด ๊ฐ™๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์“ธ ์ˆ˜ ์žˆ๋‹ค.
    name,
    age
}

console.log(person);

๐Ÿ”ฅ Destructuring(๊ฐ์ฒด ๊ตฌ์กฐํ™”)

Destructuring(๊ฐ์ฒด ๊ตฌ์กฐํ™”)์€ ๋ฐฐ์—ด, ๊ฐ์ฒด ๋ฐ ๋งต์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜์—ฌ ์ƒˆ๋กญ๊ณ  ๊ณ ์œ ํ•œ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” Javascript ํ‘œํ˜„์‹์ด๋‹ค. Destructuring์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•œ ๋ฒˆ์— ๋ฐฐ์—ด์—์„œ ์—ฌ๋Ÿฌ ์†์„ฑ ๋˜๋Š” ํ•ญ๋ชฉ์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

let person ={
    name:"gildong",
    age : 20
}

let {name, age} =person

console.log(name, age); // ๊ฒฐ๊ณผ ๊ฐ’ : gildong 20

let array = [1, 2, 3, 4];
let [a, b,...rest]= array; //...rest๋Š” ์ง€์ •ํ•ด์ค€ a, b๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€๊ฐ’์„ ์ง€์ •ํ•ด ์ค€ ๊ฒƒ์ด๋‹ค.

console.log(rest); // ๊ฒฐ๊ณผ ๊ฐ’ : [3, 4]

๐Ÿ”ฅ Spread(๊ฐ์ฒด ๊ตฌ์กฐํ™”)

Javascript ์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž(...)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ์กด ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด์˜ ์ „์ฒด ๋˜๋Š” ์ผ๋ถ€๋ฅผ ๋‹ค๋ฅธ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด๋กœ ๋น ๋ฅด๊ฒŒ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

let person ={
    name:"gildong",
    age : 12
};

let person2 = {...person}; //...person์ด๋ผ๊ณ  ์ง€์ •ํ•ด์ฃผ๋ฉด person2๋ผ๋Š” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  person๊ฐ’์ด ๋“ค์–ด๊ฐ„๋‹ค.

console.log(person2); // ๊ฒฐ๊ณผ ๊ฐ’ : gildong 12

let a =[1, 2]
let b =[...a, 3];

console.log(b); // ๊ฒฐ๊ณผ ๊ฐ’ : [1, 2, 3]

let c = [...a, ...b];
console.log(c); // ๊ฒฐ๊ณผ ๊ฐ’ : [1, 2, 1, 2, 3]

โŒ ๊ทธ๋Ÿผ ์—ฌ๊ธฐ์„œ ์ฐจ์ด๋ฅผ ์•Œ์•„๋ณด์ž

let person2 = {...person};
let person3 = person;

console.log(person2); // ๊ฒฐ๊ณผ ๊ฐ’ : gildong 12
console.log(person3); // ๊ฒฐ๊ณผ ๊ฐ’ : gildong 12

์œ„ ๋„ ์ฝ”๋“œ์˜ ๊ฒฐ๊ณผ ๊ฐ’์ด ๊ฐ™์•„ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ณด์ด์ง€๋งŒ ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅธ ๊ฒƒ์ด๋‹ค.
...์„ ๋ถ™์ด์ง€ ์•Š๋Š” ์ฝ”๋“œ๋Š” person์˜ ์ฃผ์†Œ๊ฐ’ ๋งŒ ๋ณต์‚ฌํ•œ๋‹ค. ์ฆ‰, ์ƒˆ๋กœ์šด ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ  ๊ทธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š”๋ณ€์ˆ˜๊ฐ€ ๋‘๊ฐœ์ธ ์…ˆ์ด๋‹ค.

๋ฐ˜๋ฉด ...์„ ๋„ฃ์œผ๋ฉด ๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌํ•ด ๋‚ด์šฉ์€ ๊ฐ™์ง€๋งŒ ๊ฐ์ฒด๊ฐ€ ํ•˜๋‚˜ ๋” ์ƒ์„ฑ๋œ ๊ฒƒ์ด๋‹ค.

console.log(person==person2); // ๊ฒฐ๊ณผ ๊ฐ’ : false
console.log(person==person3); // ๊ฒฐ๊ณผ ๊ฐ’ : ture

์ฆ‰ ์œ„ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒƒ์ด๋‹ค.

๐Ÿ”ฅ ์‚ผํ•ญ์—ฐ์‚ฐ์ž

์‚ผํ•ญ์—ฐ์‚ฐ์ž๋Š” Javascript์—์„œ ์„ธ ๊ฐœ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ฐ›๋Š” ์œ ์ผํ•œ ์—ฐ์‚ฐ์ž์ด๋‹ค. ์•ž์—์„œ ๋ถ€ํ„ฐ ์กฐ๊ฑด๋ฌธ, ๋ฌผ์Œํ‘œ(?), ์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ํ‘œํ˜„์‹, ์ฝœ๋ก (:), ์กฐ๊ฑด๋ฌธ ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ํ‘œํ˜„์‹์ด ๋ฐฐ์น˜๋œ๋‹ค. ํ•ด๋‹น ์—ฐ์‚ฐ์ž๋Š” if/else ๋ฌธ์˜ ๋Œ€์ฒด์žฌ๋กœ ๋นˆ๋ฒˆํžˆ ์‚ฌ์šฉ๋œ๋‹ค.

let person ={
    name:"gildong",
    age : 17
};

// ๊ธฐ์กด๋ฐฉ์‹์€ ์ด๋ ‡๊ฒŒ ์ผ๋‹ค๋ฉด
if(person){
    console.log(person.name);
} else {
    console.log("there is no person");
}

// ์‚ผํ•ญ์—ฐ์‚ฐ์ž ๋ฐฉ์‹์€
console.log(person? person.name : "there is no person");
profile
์•ˆ๋…•ํ•˜์„ธ์š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค. ๊ธ€์„ ์ด์ „ ์ค‘์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€