Published 2022. 4. 6. 19:39
6์ฅ ๋ฐ์ดํฐ ํ์ (Data Type)
- ES6๋ถํฐ๋ 7๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ ์ ๊ณตํ๋ค.
- 7๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ ์์ ํ์ (Primitive Type)๊ณผ ๊ฐ์ฒด ํ์ (Object/Reference Type)์ผ๋ก ๋ถ๋ฅํ ์ ์๋ค.
์ซ์ ํ์ (Number Type)
- C์ธ์ด๋ Java์ ๊ฒฝ์ฐ ์ ์์ ์ค์๋ฅผ ๊ตฌ๋ถํ์ฌ
int
,long
,float
,double
๋ฑ๊ณผ ๊ฐ์ ๋ค์ํ ์ซ์ ํ์ ์ ์ ๊ณตํ๋ค. - Javascript๋ ๋ ํนํ๊ฒ ํ๋์ ์ซ์ ํ์ ๋ง ์กด์ฌํ๋ค.
- Javascript๋ ๋ชจ๋ ์๋ฅผ ์ค์๋ก ์ฒ๋ฆฌํ๋ฉฐ, ์ ์๋ง ํํํ๊ธฐ ์ํ ๋ฐ์ดํฐ ํ์ ์ด ๋ณ๋๋ก ์กด์ฌํ์ง ์๋๋ค.
์ซ์ ํ์ ์ ์ถ๊ฐ์ ์ผ๋ก ์ธ ๊ฐ์ง ํน๋ณํ ๊ฐ๋ ํํํ ์ ์๋ค.
- Infinity: ์์ ๋ฌดํ๋
- -Infinity: ์์ ๋ฌดํ๋
- NaN: ์ฐ์ ์ฐ์ฐ ๋ถ๊ฐ(Not a Number)
console.log(10 / 0) // Infinity
console.log(10 / -0) // -Infinity
console.log(1 * 'String') // NaN
๋ฌธ์์ด ํ์ (String)
- ๋ฌธ์์ด ํ์ ์ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉํ๋ค.
- ๋ฌธ์์ด์ ์์๋ฐ์ดํ('', Single Quotation), ํฐ ๋ฐ์ดํ("", Double Quotation), ๋ฐฑํฑ(``, backtick)์ผ๋ก ํ ์คํธ๋ฅผ ๊ฐ์ผ๋ค.
- Javascript์ ๋ฌธ์์ด์ ์์ ํ์ (Primitive Type)์ด๋ฉฐ, ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ(Immutable Value)์ด๋ค.
var string;
string = '๋ฌธ์์ด' // ์์ ๋ฐ์ดํ
string = "๋ฌธ์์ด" // ํฐ ๋ฐ์ดํ
string = `๋ฌธ์์ด` // ๋ฐฑํฑ
ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด(Template Literal)
- ES6๋ถํฐ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ด๋ผ๋ ์๋ก์ด ๋ฌธ์์ด ํ๊ธฐ๋ฒ์ด ๋์ ๋์๋ค.
- ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ๋ฉํฐ๋ผ์ธ ๋ฌธ์์ด, ํํ์ ์ฝ์ , ํ๊ทธ๋ ํ ํ๋ฆฟ ๋ฑ ํธ๋ฆฌํ ๋ฌธ์์ด ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
- ์ผ๋ฐ ๋ฌธ์์ด๊ณผ ๋น์ทํ์ง๋ง ์์๋ฐ์ดํ('') ๋๋ ํฐ ๋ฐ์ดํ("") ๊ฐ์ ์ผ๋ฐ์ ์ธ ๋ฐ์ดํ ๋์ ๋ฐฑํฑ(``)์ ์ฌ์ฉํ์ฌ ํํํ๋ค.
๋ฉํฐ๋ผ์ธ ๋ฌธ์์ด
- ์ผ๋ฐ ๋ฌธ์์ด ๋ด์์๋ ์ค ๋ฐ๊ฟ(๊ฐํ)์ด ํ์ฉ๋์ง ์๋๋ค.
- ์ผ๋ฐ ๋ฌธ์์ด์์ ์ค ๋ฐ๊ฟ ํน์ ๊ณต๋ฐฑ์ ํํํ๋ ค๋ฉด ๋ฐฑ ์ฌ๋์\๋ก ์์ํ๋ ์ด์ค์ผ์ดํ ์ํ์ค(Escape Sequence)๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
- ์ผ๋ฐ ๋ฌธ์์ด๊ณผ ๋ฌ๋ฆฌ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด ๋ด์์๋ ์ด์ค์ผ์ดํ ์ํ์ค๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ ์ค ๋ฐ๊ฟ์ด ํ์ฉ๋๋ฉฐ, ๋ชจ๋ ๊ณต๋ฐฑ๋ ์๋ ๊ทธ๋๋ก ์ ์ฉ๋๋ค.
ํํ์ ์ฝ์
- ๋ฌธ์์ด์ + ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํ๋ค.
- +๋ ํผ์ฐ์ฐ์ ์ค ํ๋ ์ด์์ด ๋ฌธ์์ด์ธ ๊ฒฝ์ฐ ์ฐ๊ฒฐ ์ฐ์ฐ์๋ก ๋์ํ๋ค. ๊ทธ ์ธ์ ๊ฒฝ์ฐ๋ ๋ง์ ์ฐ์ฐ์๋ก ๋์ํ๋ค.
var first = 'eun';
var last = 'Namgung';
console.log('My name is ' + first + ' ' + last + '.');
// My name is Eun Namgung.
- ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด ๋ด์์๋ ํํ์ ์ฝ์ ์ ํตํด ๊ฐ๋จํ๊ฒ ๋ฌธ์์ด ์ฝ์ ์ด ๊ฐ๋ฅํ๋ค.
- ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์์ ํํ์์ ์ฝ์ ํ๋ ค๋ฉด ${} ์ผ๋ก ํํ์์ ๊ฐ์ผ๋ค.
var first = 'eun';
var last = 'Namgung';
console.log(`My name is ${first} ${last}.`);
//My name is Eun Namgung.
- ์ฃผ์ํ ์ ์, ํํ์์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ ๋ฌธ์์ด์ด ์๋๋๋ผ๋ ๋ฌธ์์ด๋ก ํ์ ์ด ๊ฐ์ ๋ณํ๋์ด ์ฝ์ ๋๋ค.
console.log(`1 +2 = ${1+ 2}`); // 1+2=3
๋ถ๋ฆฌ์ธ ํ์ (Boolean Type)
- ๋ถ๋ฆฌ์ธ ํ์ ์ ๋ ผ๋ฆฌ์ ์ฐธ ํน์ ๊ฑฐ์ง์ ๋ํ๋ด๋ true์ false๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
var js = true;
console.log(js); //true
js = false;
console.log(js); // false
undefined ํ์
- undefined์ ๊ฐ์ undefined๊ฐ ์ ์ผํ๋ค.
var foo;
console.log(foo); // undefined
์ ์์ ์์ var ํค์๋๋ก ์ ์ธํ ๋ณ์๋ ์๋ฌต์ ์ผ๋ก undefined๋ก ์ด๊ธฐํ๋๋ค. ๋ณ์ ์ ์ธ์ ์ํด ํ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฒ์ ํ ๋น์ด ์ด๋ค์ง ๋๊น์ง ๋น ์ํ๋ก ๋ด๋ฒ๋ ค ๋์ง ์๊ณ Javascript ์์ง์ด undefined๋ก ์ด๊ธฐํํ๋ค.
null ํ์
- null ํ์ ์ ๊ฐ ๋ํ null์ด ์ ์ผํ๋ค.
- Javascript๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํ๊ฒ null์ Null, NULL ๋ฑ๊ณผ ๋ค๋ฅด๋ค.
- null์ ๋ณ์์ ๊ฐ์ด ์๋ค๋ ๊ฒ์ ์๋์ ์ผ๋ก ํํํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ค.
- ์์์ ๋ณ์๋ฅผ ์ ์ธํ ํ null์ ํ ๋นํ๋ ๊ฒ์ ์ด์ ์ ์ฐธ์กฐํ ๊ฐ์ ๋ ์ด์ ์ฐธ์กฐํ์ง ์๊ฒ ๋ค๋ ์๋ฏธ์ด๋ค.
- ํจ์๊ฐ ์ ํจํ ๊ฐ์ ๋ฐํํ ์ ์๋ ๊ฒฝ์ฐ ๋ช ์์ ์ผ๋ก null์ ๋ฐํํ๊ธฐ๋ ํ๋ค.
var foo = 'Namgung';
foo = null;
์ฌ๋ฒ ํ์ (Symbol Type)
- ES6์์ ์ถ๊ฐ๋ 7๋ฒ์งธ ํ์ ์ผ๋ก, ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ์์ ํ์ ์ ๊ฐ์ด๋ค.
- ์ฌ๋ฒ ๊ฐ์ ๋ค๋ฅธ ๊ฐ๊ณผ ์ค๋ณต๋์ง ์๋ ์ ์ผ๋ฌด์ดํ ๊ฐ์ด๋ค. ์ฃผ๋ก ์ด๋ฆ์ด ์ถฉ๋ํ ์ํ์ด ์๋ ๊ฐ์ฒด์ ์ ์ผํ ํ๋กํผํฐ ํค๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
- ์ฌ๋ฒ ์ด์ธ์ ์์ ๊ฐ์ ๋ฆฌํฐ๋ด์ ํตํด ์์ฑํ์ง๋ง ์ฌ๋ฒ์ Symbol ํจ์๋ฅผ ํธ์ถํด ์์ฑํ๋ค.
- ์์ฑ๋ ์ฌ๋ฒ ๊ฐ์ ์ธ๋ถ์ ๋ ธ์ถ๋์ง ์์ผ๋ฉฐ, ๋ค๋ฅธ ๊ฐ๊ณผ ์ ๋ ์ค๋ณต๋์ง ์๋ ์ ์ผ๋ฌด์ดํ ๊ฐ์ด๋ค.
// ์ฌ๋ฒ ๊ฐ ์์ฑ
var key = Symbol('key');
console.log(typeof key); // symbol
// ๊ฐ์ฒด ์์ฑ
var obj= {};
// ์ด๋ฆ์ด ์ถฉ๋ํ ์ํ์ด ์๋ ์ ์ผ๋ฌด์ดํ ๊ฐ์ธ ์ฌ๋ฒ์ ํ๋กํผํฐ ํค๋ก ์ฌ์ฉํ๋ค.
obj[key] = 'value';
console.log(obj[key]); // value
๋ฐ์ดํฐ ํ์ ์ ํ์์ฑ
- ๊ฐ์ ์ ์ฅํ ๋ ํ๋ณดํด์ผ ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด
- ๊ฐ์ ์ฐธ์กฐํ ๋ ํ ๋ฒ์ ์ฝ์ด ๋ค์ฌ์ผ ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด
- ๋ฉ๋ชจ๋ฆฌ์์ ์ฝ์ด ๋ค์ธ 2์ง์๋ฅผ ์ด๋ป๊ฒ ํด์ํ ์ง ๊ฒฐ์ ํ๊ธฐ ์ํด
๋์ ํ์ดํ
์ ์ ํ์ ์ธ์ด, ๋์ ํ์ ์ธ์ด
- ์ ์ ํ์ ์ธ์ด(Static Type): ๋ณ์๋ฅผ ์ ์ธํ ๋ ๋ณ์์ ํ ๋นํ ์ ์๋ ๊ฐ์ ์ข ๋ฅ, ์ฆ ๋ฐ์ดํฐ ํ์ ์ ์ฌ์ ์ ์ ์ธํด์ผ ํ๋ค. ์ด๋ฅผ ๋ช ์์ ํ์ ์ ์ธ(Explicit Type Declaration)์ด๋ผ ํ๋ค.
- ๋์ ํ์ ์ธ์ด(Dynamic Type): Javascript์ ๋ณ์๋ ์ ์ธ์ด ์๋ ํ ๋น์ ์ํด ํ์ ์ด ๊ฒฐ์ (ํ์ ์ถ๋ก Type Inference)๋๊ณ , ์ฌํ ๋น์ ์ํด ๋ณ์์ ํ์ ์ ์ธ์ ๋ ์ง ๋์ ์ผ๋ก ๋ณํ ์ ์๋ค.
๋์ ํ์ ์ธ์ด์ ๋ณ์
- ๋์ ํ์ ์ธ์ด์ ๋ณ์๋ ๊ฐ์ ๋ณ๊ฒฝ์ ์ํด ํ์ ๋ ์ธ์ ๋ ์ง ๋ณ๊ฒฝ๋ ์ ์๋ค.
- ๋์ ํ์ ์ธ์ด๋ ์ ์ฐ์ฑ์ ๋์ง๋ง ์ ๋ขฐ์ฑ์ ๋จ์ด์ง๋ค.
- ๋ฐ๋ผ์ ๋ณ์๋ฅผ ์ฌ์ฉํ ๋ ์ฃผ์์ฌํญ์ด ๋ง์์ง๋ค.
์ฐธ๊ณ ํ๋ฉด ์ข์ ๊ธ
'๐ฅ Front-End > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] 7. ํํ์ & ๋ฌธ (0) | 2022.04.17 |
---|---|
[JS] ๋ชจ๋์๋ฐ์คํฌ๋ฆฝํธ Deep Dive - ์ฐ์ฐ์ (0) | 2022.04.07 |
[JS] 6. ํจ์ ์ค์ฝํ & ๋ธ๋ก ์ค์ฝํ & ๋ ์์ปฌ ์ค์ฝํ (1) | 2022.04.06 |
[JS] 4. ์์์ ํ๋ณํ, ๋ช ์์ ํ๋ณํ, Nominal, ๊ตฌ์กฐํ, ๋ ํ์ดํ (0) | 2022.03.31 |
[JS] 5. == & === & typeof (0) | 2022.03.22 |