React, TypeScript ๋ฑ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ฐฐ์ธ ๋๋ง๋ค ๊ธฐ๋ณธ๊ธฐ์ ์ค์์ฑ์ ๋๋ผ๊ณค ํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฒ์ ํ์ตํ์ ๋ ์ด๋ ค์์ ๊ฒช๊ธฐ๋ ํ๊ณ , ์ ๋๋ก ์ค๋ช ํ ์ ์์๊น ์๊ฐํด ๋ณด์์ ๋ ์์ ์ด ์์ผ๋ฏ๋ก ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฃผ์ ํต์ฌ๋ค์ ๋ค์ ํ๋ฒ ๋์ง์ด๋ณด๋ ค ํ๋ค.
๋ณ์๋ ํ๋์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํด ํ๋ณดํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ๋๋ ๊ทธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ณํ๊ธฐ ์ํด ๋ถ์ธ ์ด๋ฆ์ ๋ปํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์์๋ let
ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ์๋ฅผ ์ ์ธํ๋ค. (ES6 ์ด์ ์๋ var ํค์๋ ์ฌ์ฉ)
์ปดํจํฐ๋ ๋ฉ๋ชจ๋ฆฌ ์
์ ์งํฉ์ฒด์ธ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ ์
์ ๊ณ ์ ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ฐ๊ณ , ์ด ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์์น๋ฅผ ๋ํ๋ธ๋ค.
๋ณ์ ์ด๋ฆ์ธ ์๋ณ์๋ก ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅ๋ ๊ฐ์ ์ ๊ทผํ ์ ์๋ค.
=
๋ฅผ ์ฌ์ฉํ๋ค. let color; // ๋ณ์ ์ ์ธ
color = 'red'; // ๊ฐ ํ ๋น
let color = 'red';
let color = 'red', size = 10, shape = 'round';
โ ํ์ง๋ง ๊ฐ๋
์ฑ์ด ์ข์ง ์์ผ๋ฏ๋ก ํ ์ค์๋ ํ๋์ ๋ณ์๋ฅผ ์ ์ธํ๋ ๊ฒ์ด ์ข๋ค.
let color = 'red';
color = 'pink';
๐ let, const ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ์๋ฅผ ๋ ๋ฒ ์ ์ธํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
๋ฐ๋ผ์ ๋ณ์๋ ํ ๋ฒ๋ง ์ ์ธํ๊ณ , ์ ์ธํ ๋ณ์๋ฅผ ์ฐธ์กฐํ ๋๋ let ์์ด ๋ณ์๋ช ๋ง ์ฌ์ฉํด์ผ ํ๋ค.
_
๊ณผ $
๋ฅผ ํฌํจํ ์ ์๋ค.โ๏ธ ์์ฝ์ด
let
, const
, class
, return
, this
, for
๋ฑ
โ๏ธ ์ํ๋ฒณ ์ด์ธ ํ๊ธ ๋ฑ ๋ชจ๋ ์ธ์ด๋ฅผ ๋ณ์๋ช ์ ์ฌ์ฉํ ์ ์๋ค. ํ์ง๋ง ์์ด๋ฅผ ๋ณ์๋ช ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ตญ์ ์ ์ธ ๊ด์ต์ด๋ฏ๋ก, ๋ณ์๋ช ์ ์์ด๋ฅผ ์ฌ์ฉํด์ ๋ง๋๋ ๊ฒ์ด ์ข๋ค.
let ์ด๋ฆ = '...';
let ๅ = '...';
โ๏ธ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํ๋ค. ์๋ ๋ณ์๋ ๊ฐ๊ฐ ๋ณ๊ฐ์ ๋ณ์์ด๋ค.
let userName;
let username;
โ๏ธ ๋ณ์๋ช ์ ์๋ฏธ๋ฅผ ๋ช ํํ ํํํด์ผ ํ๋ค. ์ข์ ๋ณ์๋ช ์ ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์ธ๋ค.
let x = 16; // ๋ณ์๊ฐ ์๋ฏธํ๋ ๋ฐ๋ฅผ ์ ์ ์๋ค.
let fontSize = 16; // fontSize ๋ณ์๋ ํฐํธ ํฌ๊ธฐ๋ฅผ ์๋ฏธํ๋ค.
์นด๋ฉ ์ผ์ด์ค(camelCase)
์ฒซ ๋จ์ด๋ฅผ ์ ์ธํ ๊ฐ ๋จ์ด์ ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ์์ฑํ๋ ํ๊ธฐ๋ฒ
let userName;
์ค๋ค์ดํฌ ์ผ์ด์ค(snake_case)
๋จ์ด์ ๋จ์ด ์ฌ์ด _
๊ธฐํธ๋ฅผ ์ถ๊ฐํ๋ ํ๊ธฐ๋ฒ
let user_name;
ํ์ค์นผ ์ผ์ด์ค(PascalCase)
๊ฐ ๋จ์ด์ ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ์์ฑํ๋ ํ๊ธฐ๋ฒ
let UserName;
์ผ๊ด์ฑ์ ์ ์งํ๋ค๋ฉด ์ด๋ค ๋ค์ด๋ฐ ์ปจ๋ฒค์ ์ ์ฌ์ฉํด๋ ์ข์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ณ์๋ ํจ์์ ์ด๋ฆ์๋ ์นด๋ฉ ์ผ์ด์ค๋ฅผ, ์์ฑ์ ํจ์, ํด๋์ค์ ์ด๋ฆ์๋ ํ์ค์นผ ์ผ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค.
์ฐธ๊ณ
๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive (๋์)
https://ko.javascript.info/variables