๐ ํค์๋
ํค์๋๋ ํน๋ณํ ์๋ฏธ๊ฐ ๋ถ์ฌ๋ ๋จ์ด๋ค.
ex) break, if, else, true, false, null, return, var ,void ๋ฑ
๐ ์๋ณ์
์๋ณ์๋ ์ด๋ฆ์ ๋ถ์ผ ๋ ์ฌ์ฉํ๋ ๋จ์ด๋ค.
์๋ณ์ ๊ท์น์ ๋ค์๊ณผ ๊ฐ๋ค.
- ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ ๋๋ค.
- ํน์ ๋ฌธ์๋ '_'์ '$'๋ง ํ์ฉ๋๋ค.
- ์ซ์๋ก ์์ํ๋ฉด ์ ๋๋ค.
- ๊ณต๋ฐฑ์ ์ ๋ ฅํ๋ฉด ์ ๋๋ค.
์๋ณ์ ์์ฑ์ ๊ด๋ก
- ์์ฑ์ ํจ์์ ์ด๋ฆ์ ํญ์ ๋๋ฌธ์๋ก ์์ํ๋ค.
- ๋ณ์, ํจ์, ์์ฑ, ๋ฉ์๋์ ์ด๋ฆ์ ํญ์ ์๋ฌธ์๋ก ์์ํ๋ค.
- ์ฌ๋ฌ ๋จ์ด๋ก ๋ ์๋ณ์๋ ๊ฐ ๋จ์ด์ ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ํ๋ค.(Camel Case)
๐ ์ฃผ์
ํ๋ก๊ทธ๋จ์ ์งํ์ ์ ํ ์ํฅ์ ์ฃผ์ง ์๋ ์ฝ๋๋ค.
ํ๋ก๊ทธ๋จ์ ์ค๋ช ํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
๋ฐฉ๋ฒ | ํํ |
ํ ์ค ์ฃผ์ ์ฒ๋ฆฌ | // ์ฃผ์ ๋ด์ฉ |
์ฌ๋ฌ ์ค ์ฃผ์ ์ฒ๋ฆฌ | /* ์ฃผ์ ๋ด์ฉ */ |
๐ ๊ธฐ๋ณธ ์๋ฃํ
1. ์ซ์
์ฐ์ฐ์ | ์ค๋ช |
+ | ๋ง์ ์ฐ์ฐ์ |
- | ๋บ์ ์ฐ์ฐ์ |
* | ๊ณฑ์ ์ฐ์ฐ์ |
/ | ๋๋์ ์ฐ์ฐ์ |
% | ๋๋จธ์ง ์ฐ์ฐ์ |
โป ๋๋จธ์ง ์ฐ์ฐ์์ ๋ถํธ
๋๋จธ์ง ์ฐ์ฐ์์ ๋ถํธ๋ ์ผ์ชฝ ํผ์ฐ์ฐ์์ ๋ถํธ๋ฅผ ๋ฐ๋ฅธ๋ค. (์ค๋ฅธ์ชฝ ํผ์ฐ์ฐ์์ ๋ถํธ๋ ์ ํ ์๊ด์๋ค!)
console.log(4 % 3) // 1
console.log(-4 % 3) // -1
console.log(4 % -3) // 1
console.log(-4 % -3) // -1
2. ๋ฌธ์์ด
๋ฌธ์์ ์งํฉ์ ๋ฌธ์์ด์ด๋ผ๊ณ ํ๋ค. ํ์ง๋ง, ํ ๋ฌธ์๋ก ๊ตฌ์ฑ๋ ๊ฒ(ex 'a')๋ ๋ฌธ์์ด๋ก ์ทจ๊ธํ๋ค.
โป ์์ฃผ ์ฌ์ฉํ๋ ์ด์ค์ผ์ดํ ๋ฌธ์
์ด์ค์ผ์ดํ ๋ฌธ์ | ์ค๋ช |
๏ผผt | ์ํ ํญ |
๏ผผn | ์ค๋ฐ๊ฟ |
๏ผผ' | ์์๋ฐ์ดํ |
๏ผผ'' | ํฐ๋ฐ์ดํ |
๏ผผ๏ผผ | ์ญ์ฌ๋์ |
โป ๋ฌธ์์ด์ ์ฌ์ฉ๋๋ ์ฐ์ฐ์
์ฐ์ฐ์ | ์ค๋ช |
+ | ๋ฌธ์์ด ์ฐ๊ฒฐ ์ฐ์ฐ์ |
๋ฌธ์์ด[์ซ์] | ๋ฌธ์ ์ ํ ์ฐ์ฐ์ |
โป ํ ํ๋ฆฟ ๋ฌธ์์ด(ECMAScript6)
ECMAScript6๋ถํฐ๋ ํ ํ๋ฆฟ ๋ฌธ์์ด ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์๋ค. ํ ํ๋ฆฟ ๋ฌธ์์ด์ ` ๊ธฐํธ๋ก ์์ฑํ๋ค.
ํ ํ๋ฆฟ ๋ฌธ์์ด์ ์์ฑ ์ดํ์๋ ์ผ๋ฐ ๋ฌธ์์ด๊ณผ ๋๊ฐ์ด ์ทจ๊ธ๋๋ค.
๋ํ ํ ํ๋ฆฟ ๋ฌธ์์ด์ ์์ฑํ ๋ ๋ด๋ถ์ ${ํํ์}์ ์ฌ์ฉํ ์ ์๋ค. ๋ด๋ถ์ ${ํํ์}์ ์ ๋ ฅํ๋ฉด ํํ์์ด ๊ณ์ฐ๋์ด ๋ฌธ์์ด์ ๋ค์ด๊ฐ๋ค.
`์๋
ํ์ธ์` // ์๋
ํ์ธ์
`52 + 273 = ${52 + 273}` // '52 + 273 = 325'
`์ฌํด๋ ${new Date().getFullYear()}๋
์
๋๋ค.` // '์ฌํด๋ 2021๋
์
๋๋ค.'
๐ ๋ถ(Bool)
์ฐธ๊ณผ ๊ฑฐ์ง์ผ๋ก ํํํ ๋ ์ฌ์ฉํ๋ค. → true / false
โป ๋น๊ต ์ฐ์ฐ์
์ฐ์ฐ์ | ์ค๋ช |
== | ๊ฐ๋ค. |
!= | ๋ค๋ฅด๋ค. |
> | ์ผ์ชฝ ํผ์ฐ์ฐ์๊ฐ ํฌ๋ค. |
< | ์ค๋ฅธ์ชฝ ํผ์ฐ์ฐ์๊ฐ ํฌ๋ค. |
>= | ์ผ์ชฝ ํผ์ฐ์ฐ์๊ฐ ํฌ๊ฑฐ๋ ๊ฐ๋ค. |
<= | ์ค๋ฅธ์ชฝ ํผ์ฐ์ฐ์๊ฐ ํฌ๊ฑฐ๋ ๊ฐ๋ค. |
์ถ๊ฐ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋น๊ต ์ฐ์ฐ์๋ฅผ ๋ฌธ์์ด์๋ ์ ์ฉํ ์ ์๋ค.
๋ฌธ์์ด์ ์ฌ์ ์์์์ ์์ ์๋ ๋ฌธ์์ด์ด ์์ ๊ฐ์ ๊ฐ์ง๋ค. ex) "๊ฐ๋" < "๋ค๋ผ"
โป ๋ ผ๋ฆฌ ์ฐ์ฐ์
์ฐ์ฐ์ | ์ค๋ช |
! | ๋ ผ๋ฆฌ ๋ถ์ ์ฐ์ฐ์ |
|| | ๋ ผ๋ฆฌํฉ ์ฐ์ฐ์(OR) |
&& | ๋ ผ๋ฆฌ๊ณฑ ์ฐ์ฐ์(AND) |
๐ ๋ณ์
๋ณ์๋ ๊ฐ์ ์ ์ฅํ ๋ ์ฌ์ฉํ๋ ์๋ณ์๋ค.
์ซ์๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ์๋ฃํ์ ์ ์ฅํ ์ ์๋ค.
let ์๋ณ์;
let pi;
pi = 3.141592;
let pi = 3.141592;
1. ๋ณ์ ์ ์ธํ๊ธฐ - let
- ๋ฐ์ดํฐ ๊ฐ์ ์ด๋ฆ์ ์ง์ ํ์ฌ ์ฌ์ฉํ๊ณ ์ถ์ ๋
- ๋ฐ์ดํฐ ๊ฐ์ ๋ฐ๋ณต ์ฌ์ฉํ๊ณ ์ถ์ ๋
- ๊ฐ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ ๋ณ์๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ ๋ cf) ๋ฐ์ดํฐ ๊ฐ์ ์์ ์ด ๋ถ๊ฐ๋ฅํ ์์๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ ๋ → const
// ๋ณ์ ์ด๊ธฐํ ์๋ต - ๋ณ์์ ์ด๊ธฐํ๋ ์๋ต์ด ๊ฐ๋ฅํ๋ฉฐ, ์๋ต ์ ๊ฐ์ผ๋ก 'undefined'๊ฐ ์ฃผ์ด์ง๋ค.
let value;
console.log(value); // undefined
// ํ๊บผ๋ฒ์ ๋ณ์ ์ ์ธํ๊ธฐ - ์ฝค๋ง(,)๋ก ๊ตฌ๋ถํ๋ฉด 'let'ํ๋์ ์ฌ๋ฌ ๊ฐ์ ๋ณ์๋ฅผ ์ ์ธํ ์ ์๋ค.
let a = 1,
b = 2,
c;
console.log(a + b); // 3
console.log(c); // undefined
๐ ๋ณตํฉ ๋์ ์ฐ์ฐ์
๋ณตํฉ ๋์ ์ฐ์ฐ์๋ ์๋ฃํ์ ์ ์ฉํ๋ ๊ธฐ๋ณธ ์ฐ์ฐ์์ '='์ฐ์ฐ์๋ฅผ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค.
์ฐ์ฐ ๋ฐ ๋์ ์ ๋์์ ์งํํ๋ค.
์ฐ์ฐ์ | ์ค๋ช |
+= | ์ซ์ ๋ง์ ํ ๋์ ์ฐ์ฐ์(๋ฌธ์์ด๋ ๊ฐ๋ฅ!) |
-= | ์ซ์ ๋บ์ ํ ๋์ ์ฐ์ฐ์ |
*= | ์ซ์ ๊ณฑ์ ํ ๋์ ์ฐ์ฐ์ |
/= | ์ซ์ ๋๋์ ํ ๋์ ์ฐ์ฐ์ |
์ด์ธ์๋ '**=', '%='๊ฐ ์๋ค.
๐ ์ฆ๊ฐ ์ฐ์ฐ์
์ฆ๊ฐ ์ฐ์ฐ์๋ ๋จํญ ์ฐ์ฐ์๋ก ๋ณ์ ์๊ณผ ๋ค์ ++ ๊ธฐํธ์ -- ๊ธฐํธ๋ฅผ ๋ถ์ฌ ๋ง๋ ๋ค.
์ฐ์ฐ์ | ์ค๋ช |
๋ณ์++ | ๊ธฐ์กด ๋ณ์ ๊ฐ์ 1์ ๋ํ๋ค.(ํ์) |
++๋ณ์ | ๊ธฐ์กด ๋ณ์ ๊ฐ์ 1์ ๋ํ๋ค.(์ ์) |
๋ณ์-- | ๊ธฐ์กด ๋ณ์ ๊ฐ์ 1์ ๋บ๋ค.(ํ์) |
--๋ณ์ | ๊ธฐ์กด ๋ณ์ ๊ฐ์ 1์ ๋บ๋ค.(์ ์) |
๐ ์๋ฃํ ๊ฒ์ฌ
์๋ฐ์คํฌ๋ฆฝํธ๋ ํ๋์ ๋ณ์์ ์ฌ๋ฌ ์๋ฃํ์ ๋ฃ์ ์ ์๋ค.
๋ฐ๋ผ์, ์ด๋ค ์๋ฃํ์ด ๋ณ์์ ๋ค์ด๊ฐ๋์ง ํ์ธํ๊ธฐ ์ํด์ ์๋ฃํ ๊ฒ์ฌ๋ฅผ ํด์ผํ ๋๊ฐ ์๋ค.
์๋ฃํ ๊ฒ์ฌ๋ 'typeof' ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ค.
typeof(10) // 'number'
typeof("๋ฌธ์์ด") // 'string'
typeof(true) // 'boolean'
typeof(function() { }) // 'function'
typeof({}) // 'object'
typeof(alpha) // 'undefined'
๐ undefined ์๋ฃํ
์๋ฐ์คํฌ๋ฆฝํธ์์ '์ด๊ธฐํ๋์ง ์์ ๊ฒ'์ ํํํ๋ ์๋ฃํ์ผ๋ก undefined๊ฐ ์๋ค.
๋ณ์๋ฅผ ์ ์ธํ์ผ๋ ์ด๊ธฐํํ์ง ์์์ ๋ ๋ํ๋๋ค.
> let a
undefined
๐ ๊ฐ์ ์๋ฃํ ๋ณํ
์ด๋ค ์๋ฃํ์ ํน์ ์๋ฃํ์ผ๋ก ๊ฐ์ ๋ณํํ๊ณ ์ถ์ ๋๋ ๋ค์์ ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
ํจ์ | ์ค๋ช |
Number() | ์ซ์๋ก ์๋ฃํ ๋ณํ |
String() | ๋ฌธ์์ด๋ก ์๋ฃํ ๋ณํ |
Boolean() | ๋ถ๋ก ์๋ฃํ ๋ณํ |
1. Number() ํจ์์ NaN
console.log(Number("1013")); // 52
console.log(Number("52.273")); // 52.273
console.log(Number(true)); // 1
console.log(Number(false)); // 0
console.log(Number("์๋
???")); // NaN
์ซ์๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ถ์ ํด๋นํ๋ true, false๋ ๊ฐ๊ฐ 1, 0์ผ๋ก ๋ณํ๋๋ค.
์ซ์๋ก ๋ณํํ ์ ์๋ ๋ฌธ์์ด์ Number() ํจ์๋ก ๋ณํํ๋ฉด 'NaN'์ ์ถ๋ ฅํ๋ค.
NaN์ 'Not a Number'์ ์ค์๋ง๋ก '์ซ์ ์๋ฃํ์ด์ง๋ง ์ซ์๊ฐ ์๋ ๊ฒ'์ ์๋ฏธํ๋ค.
โป NaN์ธ์ง ํ์ธํ ๋๋ isNaN() ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
2. Boolean() ํจ์
์๋ฐ์คํฌ๋ฆฝํธ์์ Boolean() ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์ 5๊ฐ์ ์์๋ false๋ก ๋ณํ๋๋ค. (์ด์ธ์๋ ๋ชจ๋ true๋ก ๋ณํ)
- 0
- NaN
- "" (๋น๋ฌธ์์ด)
- null
- undefined
๐ ์๋ ์๋ฃํ ๋ณํ
์๋ฐ์คํฌ๋ฆฝํธ๋ ์ผ๋ถ ์๋ฃํ์ ์ํฉ์ ๋ฐ๋ผ ์๋์ผ๋ก ๋ณํํ๋ค.
1. ์ซ์์ ๋ฌธ์์ด ์๋ฃํ ์๋ ๋ณํ
์ซ์์ ๋ฌธ์์ด์ '+' ์ฐ์ฐ์๋ฅผ ์ ์ฉํ๋ฉด ์๋์ผ๋ก ์ซ์๊ฐ ๋ฌธ์์ด๋ก ๋ณํ๋๋ค.
console.log(52 + 273); // 325
console.log("52" + 273); // 52273
console.log(52 + "273"); // 52273
console.log("52" + "273"); // 52273
2. ๋ถ ์๋ฃํ ์๋ ๋ณํ
'!' ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๋๋ ๋ถ ์๋ฃํ์ผ๋ก ์๋ ๋ณํ๋๋ค.
โป ! ์ฐ์ฐ์๋ฅผ ๋ ๋ฒ ์ฌ์ฉ(!!)ํ๋ ๊ฒ์ Boolean() ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ํจ๊ณผ๊ฐ ๊ฐ๋ค.
console.log(!!0); // false
console.log(!!nan); // false
console.log(!!""); // false
console.log(!!null); // false
console.log(!!undefinedVariable); // false
๐ ์ผ์น ์ฐ์ฐ์
์๋ฐ์คํฌ๋ฆฝํธ๋ '์๋ฃํ๊น์ง ๊ฒ์ฌํ๋' ์ผ์น ์ฐ์ฐ์๋ฅผ ์ ๊ณตํ๋ค.
์ฐ์ฐ์ | ์ค๋ช |
=== | ์๋ฃํ๊ณผ ๊ฐ์ด ๊ฐ์์ง ๋น๊ตํ๋ค. |
!== | ์๋ฃํ๊ณผ ๊ฐ์ด ๋ค๋ฅธ์ง ๋น๊ตํ๋ค. |
console.log(`1234 == "1234": ${1234 == "1234"}`); // 1234 == "1234": true
console.log(`1234 === "1234": ${1234 === "1234"}`); // 1234 === "1234": false
console.log(`0 == "": ${0 == ""}`); // 0 == "": true
console.log(`0 === "": ${0 === ""}`); // 0 === "": false
โป '=='์ '==='์ ์ฐจ์ด์
'==' ๋ฅผ ์ฌ์ฉํ ๋น๊ต๋ ๋ ๋น๊ต ๋์์ด ๋ค๋ฅธ ํ์ ์ด๋ผ๋ ๋์ผํ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ์ฌ ๋น๊ตํ๋ค.
'==='๋ฅผ ์ฌ์ฉํ ๋น๊ต๋ ๋ ๋ฐ์ดํฐ์ ํ์ ์ด ๋ค๋ฅด๋ฉด ๋ค๋ฅธ ๋ฐ์ดํฐ๋ก ๊ฐ์ฃผํ์ฌ ๋น๊ตํ๋ค.
'!='์ '!==='์ ๊ด๊ณ๋ ๋์ผํ๋ค.
๐ ์์
ECMAScript6๋ถํฐ const ์์ ์์ฑ ํค์๋๊ฐ ์ถ๊ฐ๋์๋ค.
const๋ ์์(constant)๋ฅผ ๋ง๋๋ ํค์๋๋ค.
const๋ '๋ณ๊ฒฝํ์ง ์์ ๋์'์ ์ ์ฉํ๋ค. ex) pi๋ฅผ 3.14๋ก ๊ณ ์ ํ ๋ ์ฌ์ฉ
์์๋ 'ํ๋ก๊ทธ๋จ์ ์กฐ๊ธ ๋ ์ฝ๊ธฐ ์ฝ๊ณ , ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ๋ง๋ค๋ ค๊ณ ' ์ฌ์ฉํ๋ค.
์์๋ '๋ณํ์ง ์์ ๊ฒ'์ด๋ผ๊ณ ๊ฐ์ ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋ด๋ถ์ ์ผ๋ก ๊ฐ๋จํ ํํ๋ก ์ ์ฅํ๋ค.
๋ฐ๋ผ์ ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ๋ฏธ์ธํ๊ฒ๋๋ง ์ค์ผ ์ ์๋ค.
// ์์ ์ ์ธ
const constant = "๋ณ๊ฒฝํ ์ ์๋ค.";
constant = "";
// ์ถ๋ ฅ
console.log(constant);
/*
TypeError: Assignment to constant variable' ์ค๋ฅ ๋ฐ์
์์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ์ค๋ฅ๋ค.
*/
์ฐธ๊ณ ๋์
- ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ
- ์ค๋ฌด์ ๋ฐ๋ก ์ ์ฉํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ๋ ์ํผ 278
๋๊ธ