
1. ๋์จํ ํ์ (loosely typed)์ ๋์ (dynamic) ์ธ์ด
JavaScript๋ Java, C, TypeScript ๋ฑ ์๊ฒฉํ ํ์ ์ ์ธ์ ํด์ผํ๋ ์ธ์ด์๋ ๋ฌ๋ฆฌ ๋์จํ ํ์ ์ ์ง๋๋๋ค.
let foo = 42 // foo๊ฐ ์ซ์
foo = 'bar' // foo๊ฐ ์ด์ ๋ฌธ์์ด
foo = true // foo๊ฐ ์ด์ ๋ถ๋ฆฌ์ธ
์ด์ฒ๋ผ ๋ณ์์๋ ๋ฐ๋ก ํ์
์ง์ ์ ํด์ฃผ์ง ์์๋ ๋๋ฉฐ, ๊ฐ์ ๋ฐ๋ผ ์๋์ผ๋ก ํ์
์ด ์ง์ ๋ฉ๋๋ค.
์ฆ, JavaScript์ ๋ณ์๋ ์ด๋ค ํน์ ํ์
๊ณผ ์ฐ๊ฒฐ๋์ง ์์ผ๋ฉฐ, ๋ชจ๋ ํ์
์ ๊ฐ์ผ๋ก ํ ๋น(๋ฐ ์ฌํ ๋น) ๊ฐ๋ฅํฉ๋๋ค.
2. JavaScript ํ๋ณํ
์ด์ ์ ์ ๋ฆฌํ ๊ธ์ ์ฐธ์กฐํด์ฃผ์ธ์.
[JS] 4. ์์์ ํ๋ณํ, ๋ช ์์ ํ๋ณํ, Nominal, ๊ตฌ์กฐํ, ๋ ํ์ดํ
์คํ์์ค ๊นํ๋ธ ์ฃผ์: https://github.com/yjs03057/33-js-concepts GitHub - yjs03057/33-js-concepts: ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๊ฐ ์์์ผ ํ๋ 33๊ฐ์ง ๊ฐ๋ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๊ฐ ์์์ผ ํ๋ 33๊ฐ์ง..
eun-ng.tistory.com
3. ==, ===
์ด์ ์ ์ ๋ฆฌํ ๊ธ์ ์ฐธ์กฐํด์ฃผ์ธ์.
[JS] 5. == & === & typeof
์คํ์์ค ๊นํ๋ธ ์ฃผ์: https://github.com/yjs03057/33-js-concepts GitHub - yjs03057/33-js-concepts: ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๊ฐ ์์์ผ ํ๋ 33๊ฐ์ง ๊ฐ๋ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๊ฐ ์์์ผ ํ๋ 33๊ฐ์ง..
eun-ng.tistory.com
4. ๋์จํ ํ์ (loosely typed)์ ๋์ (dynamic) ์ธ์ด์ ๋ฌธ์ ์ ๋ฐ ๋ณด์ํ ์ ์๋ ๋ฐฉ๋ฒ
JavaScript
์ ๋จ์ ์ ๋ณด์ํ TypeScript
๊ฐ ์์ต๋๋ค.TypeScript
๋ JavaScript
์ ๋น์ทํ์ง๋ง ์ ์ ์ธ์ด์ ๊ฐ์ด ํ์
์ ์ ์ธํ์ฌ ์ฒดํฌํ ์ ์๊ณ ,JavaScript
์ ์ค๋ฅ๋ ๋ฐํ์ ์์๋ง ๋๋ฒ๊น
์ด ๊ฐ๋ฅํ์ง๋ง, TypeScript
๋ ์ปดํ์ผ ๋จ๊ณ์์ ์ค๋ฅ๋ฅผ ์ถ๋ ฅํด์ฃผ๊ธฐ์ ์ปดํ์ผ ๋จ๊ณ์์ ๋๋ฒ๊น
์ด ๊ฐ๋ฅํฉ๋๋ค.
5. undefined์ null์ ๋ฏธ์ธํ ์ฐจ์ด
undefined์ ๋ณ์๋ฅผ ์ ์ธํ๊ณ ๊ฐ์ ํ ๋นํ์ง ์์ ์ํ(๊ฐ์ ํ ๋นํ์ง ์๊ฒ๋๋ฉด Javascript๋ ์๋์ผ๋ก undefined๋ฅผ ํ ๋นํฉ๋๋ค),
null์ ๋ณ์๋ฅผ ์ ์ธํ๊ณ ๋น ๊ฐ์ ๊ฐ๋ฐ์์ ์๋๋๋ก ํ ๋นํ ์ํ(๋น ๊ฐ์ฒด)์
๋๋ค.
์ฆ, undefined๋ ์๋ฃํ์ด ์๋ ์ํ์ด๋ค.
๋ฐ๋ผ์ typeof๋ฅผ ํตํด ์๋ฃํ์ ํ์ธํด๋ณด๋ฉด null์ object๋ก, undefined๋ undefined๊ฐ ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
typeof null // 'object'
typeof undefined // 'undefined'
null === undefined // false
null == undefined // true
null === null // true
null == null // true
!null // true
isNaN(1 + null) // false
isNaN(1 + undefined) // true
5.1. undefined
undefined๋ ์์๊ฐ(Primitive Type)์ผ๋ก, ์ ์ธํ ํ์ ๊ฐ์ ํ ๋นํ์ง ์์ ๋ณ์๋ ๊ฐ์ด ์ฃผ์ด์ง์ง ์์ ์ธ์์ ์๋์ผ๋ก ํ ๋น๋ฉ๋๋ค.
์ด ๊ฐ์ ์ ์ญ ๊ฐ์ฒด์ ์์ฑ ์ค ํ๋๋ก, ์ ์ญ ์ค์ฝํ์์์ ๋ณ์์ด๊ธฐ๋ ํฉ๋๋ค. ๋ฐ๋ผ์ undefined ๋ณ์์ ์ด๊ธฐ ๊ฐ์ undefined. ์ฆ, ์์ ๊ฐ์
๋๋ค.
์๋์ ๊ฒฝ์ฐ์ ๋ณ์๊ฐ undefined๋ฅผ ๋ฐํํฉ๋๋ค.
- ๊ฐ์ ํ ๋นํ์ง ์์ ๋ณ์
- ๋ฉ์๋์ ์ ์ธ์์ ๋ณ์๊ฐ ํ ๋น๋ฐ์ง ์์ ๊ฒฝ์ฐ
- ํจ์๊ฐ ๊ฐ์ return ํ์ง ์์์ ๋
5.2. null
null์ ์์๊ฐ(Primitive Type) ์ค ํ๋๋ก, ์ด๋ค ๊ฐ์ด ์๋์ ์ผ๋ก ๋น์ด์์์ ํํํฉ๋๋ค.
undefined๋ ๊ฐ์ด ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํ์ง๋ง, null์ ๊ฒฝ์ฐ์๋ ํด๋น ๋ณ์๊ฐ ์ด๋ค ๊ฐ์ฒด๋ ๊ฐ๋ฆฌํค๊ณ ์์ง ์๋ค๋ ๊ฒ์ ์๋์ ์ผ๋ก ๋ช
์ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
์ถ๊ฐ ๋ฐ์ดํฐ ํ์ ์ ์ด์ ๊ธ์ ์ฐธ์กฐํด์ฃผ์ธ์.
[JS] ๋ชจ๋์๋ฐ์คํฌ๋ฆฝํธ Deep Dive - ๋ฐ์ดํฐ ํ์
6์ฅ ๋ฐ์ดํฐ ํ์ (Data Type) ES6๋ถํฐ๋ 7๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ ์ ๊ณตํ๋ค. 7๊ฐ์ ๋ฐ์ดํฐ ํ์ ์ ์์ ํ์ (Primitive Type)๊ณผ ๊ฐ์ฒด ํ์ (Object/Reference Type)์ผ๋ก ๋ถ๋ฅํ ์ ์๋ค. ์ซ์ ํ์ (Number Type) C์ธ์ด..
eun-ng.tistory.com
6. Reference
JavaScript์ ํ์ ๊ณผ ์๋ฃ๊ตฌ์กฐ - JavaScript | MDN
๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์๋ ๋ด์ฅ๋ ์๋ฃ๊ตฌ์กฐ๊ฐ ์กด์ฌํ์ง๋ง ๋ณดํต ๊ทธ ๋ด์ฉ์ ์ธ์ด๋ง๋ค ๋ค๋ฆ ๋๋ค. ์ด ๊ธ์์๋ JavaScript์์ ์ฌ์ฉํ ์ ์๋ ๋ด์ฅ ์๋ฃ๊ตฌ์กฐ์ ๊ทธ ์์ฑ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ
developer.mozilla.org
'๐ฅ Front-End > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ์ค์ฝํ(Scope) (0) | 2022.07.21 |
---|---|
[JS] JavaScript ๊ฐ์ฒด์ ๋ถ๋ณ์ฑ (0) | 2022.07.20 |
[JS] JavaScript์ append๋ฅผ ์ด์ฉํ HTML ์์ ์์ฑํ๊ธฐ (2) | 2022.05.15 |
[JS] 10. setTimeout & setInterval & requestAnimationFrame (0) | 2022.04.20 |
[JS] 8. IIFE & ๋ชจ๋ & ๋ค์์คํ์ด์ค (0) | 2022.04.18 |