API๋ก ๊ฐ์ ธ์จ ๊ฐ์ฒด ๋ฐ์ดํฐ ๋ด ์ ์ฅ๋ ์์ฑ์ ์ ๊ทผํ๊ณ , ์ ๊ทผํ ์์ฑ์ ํน์ ๋ฉ์๋๋ฅผ ์ ์ฉํ ๋๋ง๋ค ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๊ณค ํ๋ค.
์ ์๋ฌ๋ ํด๋น ์ฝ๋ ๋ด
productData.price.toLocaleString()
์์ ๋ฐ์ํ๊ณ ์๋ค. productData
๋ผ๋ ๊ฐ์ฒด ๋ด price
๋ผ๋ key์ ์ ๊ทผํ ํ ๊ฐ์ ธ์จ value๋ก toLocaleString()
์ ์ ์ฉํ๋ ค ํ ๋ ๋ฐ์ํ ์ค๋ฅ์ด๋ค.
(์ด์ธ์๋ slice()
๋ฑ ํน์ ๋ฉ์๋๋ก ๊ฐ์ ์ฒ๋ฆฌํ๋ ค ํ ๋์๋ ํด๋น ์๋ฌ๊ฐ ๋ฐ์ํ์๋ค.)
ํด๋น ์ปดํฌ๋ํธ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๊ทธ ์ต์๋จ์์
&&
์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด ๋ก๋ฉ์ด ์๋ฃ ๋์๊ณ (isLoading), ๊ฐ์ฒด๊ฐ ์กด์ฌํ ๋(productdata)์๋ง ๋ ๋๋ง ๋ ์ ์๋๋ก ์ ์ฉ๋์ด ์๋ค.
๊ทธ๋์ productData.product_name
๊ฐ์ ๋จ์ ์ ๊ทผ์์๋ ์ด์์ด ์์ง๋ง ์ ๊ทผ ํ toLocaleString()
๋ฉ์๋ ์ด์ฉ ์ ์๋ฌ๊ฐ ๊ทธ๋๋ก ๋ฐ์ํ๋ ๊ฒ์ ๋ณผ ์ ์์๋ค.
์ด๋ฏธ ์์์ productData๊ฐ ์์ ๋๋ง ์ฒ๋ฆฌ๋ ์ ์๋๋ก ์ง์ ํด ์ฃผ์์์๋ ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ ๊ฑธ๊น?
๋จผ์ &&
์ฐ์ฐ์๋ก price ์์ฑ๊น์ง ์ง์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
๋ค๋ง ์ด ๋ฐฉ๋ฒ์ ๊ฒฝ์ฐ ๊ฐ์ฒด์ ์ค์ฒฉ์ด ๋ ๊น์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์๋ก &&์ฐ์ฐ์๋ฅผ ํ๋ํ๋ ์ผ์ผ์ด ์ ์ฉํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๊ธธ ์ ์๋ค.
&&
์ฐ์ฐ์ ๋ณด๋ค ๋์ฑ ๊ฐํธํ๊ณ ์์ ํ๊ฒ ํ๋กํผํฐ์ ์ ๊ทผํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ค. ๋ฐ๋ก ์ต์
๋ ์ฒด์ด๋
์ด๋ค.
์๋ ์ฝ๋์ ๊ฐ์ด ์ ๊ทผํ ํ๋กํผํฐ์ ์ต์
๋ ์ฒด์ด๋ ์ฐ์ฐ์(?.
)๋ฅผ ์ฌ์ฉํด ์ฃผ๋ฉด ๋๋ค.
1) ?.
๋ฅผ ํ์ํ ์ขํญ์ ๊ฐ(์ฌ๊ธฐ์๋ productData.price
)์ด null
๋๋ undefined
์ธ ๊ฒฝ์ฐ, ์๋ฌ๋ฅผ ๋ฐ์์ํค์ง ์๊ณ ์คํ ์ข
๋ฃ ํ undefined
๋ฅผ ๋ฐํํ๋ค.
2) productData.price
๊ฐ ์กด์ฌํ๋ค๋ฉด (null ๋๋ undefined๊ฐ ์๋๋ผ๋ฉด), ๊ทธ ๋ค์์ ์ค๋ .toLocaleString()
๋ฉ์๋๋ฅผ ํธ์ถํ๊ฒ ๋๋ค.
JavaScript์์ ๊ฐ์ฒด์ ์ค์ฒฉ๋ ์์ฑ์ ์ ๊ทผํ๋ ค๊ณ ํ ๋, ํด๋น ์์ฑ์ด ์กด์ฌํ์ง ์์ผ๋ฉด undefined๋ฅผ ๋ฐํํ๋ ๋์ ์ TypeError๊ฐ ๋ฐ์ํ๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ES2020์์ ๋์ ๋ ๊ธฐ๋ฅ์ด ๋ฐ๋ก '์ต์ ๋ ์ฒด์ด๋' ์ด๋ค.
์ฆ, ๋ด๊ฐ ๋ง๋ ์ TypeError๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฑ์ฅํ ๊ธฐ๋ฅ์ด๋ผ๋ ๊ฒ๐
๊ฐ์ฒด์ ์์ฑ์ ์ฝ์ด์ค๋ ๊ณผ์ ์์ ํด๋น ๊ฐ์ด undefined ๋๋ null์ผ ๊ฒฝ์ฐ, ์๋ฌ๋ฅผ ๋ฐ์์ํค์ง ์๊ณ undefined ๋๋ null์ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ์ฝ๋์ ์์ ์ฑ์ ๋์ผ ์ ์๋ค๋ ์ฅ์ ์ ์ง๋๊ณ ์๋ค.
ํจ์๋ ๋ฉ์๋ ํธ์ถ์๋ ์ฌ์ฉํ ์ ์๋ค.
let user = {
sayHello: function() {
return 'Hello!';
}
};
console.log(user.sayHello?.()); // Hello!
let user = {};
console.log(user.sayHello?.()); // undefined
user.sayHello
์กด์ฌํ๋ฉด ํจ์๋ฅผ ํธ์ถํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํํ๋ค. user.sayHello
๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด(undefined๋ null์ผ ๊ฒฝ์ฐ), ๋ฐ๋ก undefined๋ฅผ ๋ฐํํ๋ค.
๋ฐฐ์ด์๋ ์ต์ ๋ ์ฒด์ด๋์ ์ฌ์ฉํ ์ ์๋ค.
let value = arr?[index];
๋ฐฐ์ด arr์ด ์กด์ฌํ๋ฉด ํด๋น ์ธ๋ฑ์ค์ ๊ฐ์ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด(undefined๋ null์ผ ๊ฒฝ์ฐ), ๋ฐ๋ก undefined๋ฅผ ๋ฐํํ๋ค.
productData
)productData?.price?.
๋ณด๋ค๋ productData.price?.
๋ก ์ฌ์ฉํ๋ ๊ฒ ๋ฐ๋์งํ ๋ฐฉ๋ฒ์ด๋ฉฐ, productData?.price
์ ๊ฐ์ด ์ฌ์ฉํ๋ค๋ฉด ๋ณ์productData๊ฐ ์กด์ฌํ์ง ์๋๋ผ๋ ReferenceError ๋์ undefined
๊ฐ ๋ฐํ๋๊ณ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์์ ๋๋ฒ๊น
์ด ์ด๋ ค์์ง ์ ์๋ค.