μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- μκ³ λ¦¬μ¦
- CSS
- μλ°μ€ν¬λ¦½νΈ
- μ½λ©ν μ€νΈ
- νλ‘ νΈμλ
- λ°λΈμ½μ€
- float
- position
- REACT
- Flex
- useRef
- Gatsby
- νλ‘κ·Έλλ¨Έμ€
- Props
- useEffect
- λ°λΈμ½μ€3κΈ°
- fetch API
- λΈλ‘κ·Έ
- history api
- Today
- Total
Daehyunii's Dev-blog
07μ₯ μ°μ°μ λ³Έλ¬Έ
07μ₯ μ°μ°μ
Daehyunii 2022. 6. 25. 22:0407μ₯ μ°μ°μ
μ°μ°μλ νλ μ΄μμ ννμμ λμμΌλ‘ μ°μ , ν λΉ, λΉκ΅, λ Όλ¦¬, νμ , μ§μ μ°μ° λ±μ μνν΄ νλμ κ°μ λ§λ λ€. νΌμ°μ°μλ κ°μΌλ‘ νκ° λ μ μλ ννμμ΄μ΄μΌ νλ©°, νΌμ°μ°μμ μ°μ°μμ μ‘°ν©μΌλ‘ μ΄λ€μ§ μ°μ°μ ννμλ κ°μΌλ‘ νκ°λ μ μλ ννμμ΄λ€.
7.1 μ°μ μ°μ°μ
μ°μ μ°μ°μλ νΌμ°μ°μλ₯Ό λμμΌλ‘ μνμ κ³μ°μ μνν΄ μλ‘μ΄ μ«μ κ°μ λ§λ λ€.(μ°μ μ΄ λΆκ°λ₯ν κ²½μ° μ«μ κ° NaNμ λ°ννλ€.)
7.1.1 μ΄ν μ°μ μ°μ°μ
μ΄ν μ°μ μ°μ°μλ 2κ°μ νΌμ°μ°μλ₯Ό μ°μ μ°μ°νμ¬ μ«μ κ°μ λ§λ λ€. μ΄ν μ°μ μ°μ°μλ νΌμ°μ°μμ κ°μ λ³κ²½νλ λΆμ ν¨κ³Όλ μλ€.
μ΄ν μ°μ μ°μ°μ | μλ―Έ | λΆμ ν¨κ³Ό |
+ | λνκΈ° | μμ |
- | λΉΌκΈ° | μμ |
* | κ³±νκΈ° | μμ |
/ | λλκΈ° | μμ |
% | λλ¨Έμ§ λλκΈ° | μμ |
7.1.2 λ¨ν μ°μ μ°μ°μ
λ¨ν μ°μ μ°μ°μλ 1κ°μ νΌμ°μ°μλ₯Ό μ°μ μ°μ°νμ¬ μ«μ κ°μ λ§λ λ€.
λ¨ν μ°μ μ°μ°μ | μλ―Έ | λΆμ ν¨κ³Ό |
++ | 1μ© μ¦κ° | μμ |
-- | 1μ© κ°μ | μμ |
+ | μ΄λ ν ν¨κ³Όλ μλ€. | μμ |
- | μμλ₯Ό μμλ‘, μμλ₯Ό μμλ‘ λ°μ ν κ° λ°ν | μμ |
(μ¦κ°/κ°μ μ°μ°μ)
μ¦κ°/κ°μ μ°μ°μ νλ©΄ νΌμ°μ°μμ κ°μ λ³κ²½νλ μ묡μ ν λΉμ΄ μ΄λ€μ§λ―λ‘, λΆμ ν¨κ³Όκ° μλ€. μ¦κ°/κ°μ μ°μ°μλ μμΉμ μλ―Έκ° μλ€.
-νΌμ°μ°μ μμ μμΉν μ μ μ¦κ°/κ°μ μ°μ°μλ λ¨Όμ νΌμ°μ°μμ κ°μ μ¦κ°/κ°μμν¨ ν, λ€λ₯Έ μ°μ°μ μννλ€.
-νΌμ°μ°μ λ€μ μμΉν νμ μ¦κ°/κ°μ μ°μ°μλ λ¨Όμ λ€λ₯Έ μ°μ°μ μνν ν, νΌμ°μ°μμ κ°μ μ€κ°/κ°μ μν¨λ€.
var x = 5;
var result;
result = x++; // resultμ xμ κ° μ ν λΉ ν xμ κ° 1 μ¦κ°
result = ++x; // xμ κ° 1 μ μ¦κ° ν resultμ κ° ν λΉ
(λ§μ , λΊμ μ°μ°μ)
μ«μ νμ μ΄ μλ νΌμ°μ°μμ +,- μ°μ°μλ₯Ό μ¬μ©νλ©΄ νΌμ°μ°μλ₯Ό μ«μ νμ μΌλ‘ λ³ννμ¬ λ°ννλ€.(μ묡μ νμ λ³ν)
var x = '1';
console.log(+x); // μ«μ κ° 1 λ°ν
console.log(-x); // μ«μ κ° -1 λ°ν
console.log(x); // λ¬Έμμ΄ '1' λ°ν(λΆμ ν¨κ³Όλ μμ)
x = true;
console.log(+x); // μ«μ κ° 1 λ°ν
console.log(-x); // μ«μ κ° -1 λ°ν
x = false;
console.log(+x); // μ«μ κ° 0 λ°ν
console.log(-x); // μ«μ κ° -0 λ°ν
x = 'hello'
console.log(+x); // μ«μ κ° NaN λ°ν(λ¬Έμμ΄μ μ«μλ‘ νμ
λ³ν ν μ μμΌλ―λ‘)
7.1.3 λ¬Έμμ΄ μ°κ²° μ°μ°μ
(+)μ°μ¬μλ νΌμ°μ°μ μ€ νλ μ΄μμ΄ λ¬Έμμ΄μΈ κ²½μ° λ¬Έμμ΄ μ°κ²° μ°μ°μλ‘ λμνκ³ κ·Έ μΈμ κ²½μ°λ μ°μ μ°μ°μλ‘ λμνλ€.
console.log('1' + 1); // λ¬Έμμ΄ νμ
μ κ° 11 λ°ν(λ¬Έμμ΄ μ°κ²° μ°μ°μλ‘ λμ)
console.log(1 + 1); // μ«μ νμ
μ κ° 2 λ°ν(μ΄ν μ°μ μ°μ°μλ‘ λμ)
console.log(1 + 1); // μ«μ νμ
μ κ° 2 λ°ν(μ΄ν μ°μ μ°μ°μλ‘ λμ)
console.log(1 + true); // μ«μ νμ
μ κ° 2 λ°ν(μ΄ν μ°μ μ°μ°μλ‘ λμ)
console.log(1 + false); // μ«μ νμ
μ κ° 1 λ°ν(μ΄ν μ°μ μ°μ°μλ‘ λμ)
console.log(1 + undefined); // μ«μ νμ
μ κ° NaN λ°ν(μ΄ν μ°μ μ°μ°μλ‘ λμ)
//+undefinedλ μ«μλ‘ νμ
λ³νμ΄ λμ§ μμΌλ―λ‘, NaN κ°μ λ°ννλ€.
7.2 ν λΉ μ°μ°μ
ν λΉ μ°μ°μλ μ°νμ μλ νΌμ°μ¬μμ νκ° κ²°κ³Όλ₯Ό μ’νμ μλ λ³μμ ν λΉνλ€. ν λΉ μ°μ°μλ μ’νμ λ³μμ κ°μ ν λΉνλ―λ‘ λ³μ κ°μ΄ λ³νλ λΆμ ν¨κ³Όκ° μλ€.
ν λΉ μ°μ°μ | μ | λμΌ νν | λΆμ ν¨κ³Ό |
= | x = 5 | x = 5 | μμ |
+= | x += 5 | x = x + 5 | μμ |
-= | x -= 5 | x = x - 5 | μμ |
*= | x *= 5 | x = x * 5 | μμ |
/= | x /= 5 | x = x / 5 | μμ |
%= | x %= 5 | x = x % 5 | μμ |
var num = 5;
num += 5; // μ«μ κ° 10 ν λΉ
var string = 'hello';
string += ' world'; // λ¬Έμμ΄ κ° hello world ν λΉ
7.3 λΉκ΅ μ°μ°μ
λΉκ΅ μ°μ°μλ μ’νκ³Ό μ°νμ νΌμ°μ°μλ₯Ό λΉκ΅ν λ€μ κ·Έ κ²°κ³Όλ₯Ό λΆλ¦¬μΈ κ°μΌλ‘ λ°ννλ€. λ°λΌμ μ μ΄λ¬Έμ 쑰건μμ μ£Όλ‘ μ¬μ©νλ€.
7.3.1 λλ±/μΌμΉ λΉκ΅ μ°μ°μ
λΉκ΅ μ°μ°μ | μλ―Έ | μ | μ€λͺ | λΆμ ν¨κ³Ό |
== | λλ± λΉκ΅ | x == y | x,yμ κ°μ΄ κ°μ | μμ |
=== | μΌμΉ λΉκ΅ | x === y | x,yμ κ°,νμ μ΄ κ°μ | μμ |
!= | λΆλλ± λΉκ΅ | x != y | x,yμ κ°μ΄ λ€λ¦ | μμ |
!== | λΆμΌμΉ λΉκ΅ | x !== y | x,yμ κ°,νμ μ΄ λ€λ¦ | μμ |
λλ± λΉκ΅ μ°μ°μλ μ’νκ³Ό μ°νμ νΌμ°μ°μλ₯Ό λΉκ΅ν λ λ¨Όμ μ묡μ νμ λ³νμ ν΅ν΄ νμ μ μΌμΉμν¨ ν κ°μ κ°μΈμ§ λΉκ΅νλ€. λ°λΌμ λ°μ΄ν° νμ μ΄ λ€λ₯΄λλΌλ μ묡μ νμ λ³ν νμ κ°μ κ°μΌ μ μλ€λ©΄ trueλ₯Ό λ°ννλ€.
console.log(5 == '5'); // true
λλ± λΉκ΅ μ°μ°μλ μμΈ‘νκΈ° μ΄λ €μ΄ κ²°κ³Όλ₯Ό λ§λ€μ΄ λ΄κΈ°λ νλ―λ‘, μΌλ°μ μΌλ‘ μΌμΉ λΉκ΅ μ°μ°μλ₯Ό λ§μ΄ μ¬μ©νλ€.
β»μ£Όμμ¬ν
1. NaN : μμ κ³Ό μΌμΉνμ§ μλ μ μΌν κ°μ΄λ€.
console.log(NaN == NaN); // false
console.log(NaN === NaN); // false
//isNaN λΉνΈμΈ ν¨μλ₯Ό μ¬μ©ν΄μ νμΈν΄μΌ νλ€.
console.log(isNaN(NaN)); // true
console.log(isNaN(1+undefined)); // true
2. 0, -0 : μλ°μ€ν¬λ¦½νΈμλ +0κ³Ό -0μ΄ μλλ° μ΄λ€μ λΉκ΅νλ©΄ trueλ₯Ό λ°ννλ€.
console.log(0 === -0); // true
console.log(0 == -0); // true
3. Object.is λ©μλ : Object.is λ©μλλ μ νν λΉκ΅ κ²°κ³Όλ₯Ό λ°ννλ€.
console.log(Object.is(NaN, NaN)); // true
console.log(Object.is(0, -0)); // false
7.3.2 λμ κ΄κ³ λΉκ΅ μ°μ°μ
λμ κ΄κ³ λΉκ΅ μ°μ°μλ νΌμ°μ°μμ ν¬κΈ°λ₯Ό λΉκ΅νμ¬ λΆλ¦¬μΈ κ°μΌλ‘ λ°ννλ€.
λμ κ΄κ³ λΉκ΅ μ°μ°μ | μμ | μλ―Έ | λΆμ ν¨κ³Ό |
> | x > y | xκ° yλ³΄λ€ ν¬λ€ | μμ |
< | x < y | xκ° yλ³΄λ€ μλ€ | μμ |
>= | x >= y | xκ° yλ³΄λ€ ν¬κ±°λ κ°λ€ | μμ |
<= | x <= y | xκ° yλ³΄λ€ μκ±°λ κ°λ€ | μμ |
7.4 μΌν 쑰건 μ°μ°μ
μΌν 쑰건 μ°μ°μλ 쑰건μμ νκ° κ²°κ³Όμ λ°λΌ λ°νν κ°μ κ²°μ νλ€. μλ°μ€ν¬λ¦½νΈμ μ μΌν μΌν μ°μ°μμ΄λ©°, λΆμ ν¨κ³Όλ μλ€. μΌν 쑰건 μ°μ°μλ 첫 λ²μ§Έ νΌμ°μ°μκ° trueλ‘ νκ°λλ©΄ λ λ²μ§Έ νΌμ°μ°μλ₯Ό λ°ννκ³ , 첫 λ²μ§Έ νΌμ°μ°μκ° falseλ‘ νκ°λλ©΄ μΈ λ²μ§Έ νΌμ°μ°μλ₯Ό λ°ννλ€. κ²°κ΅ μΌν 쑰건 μ°μ°μλ λ λ²μ§Έ νΌμ°μ°μ λλ μΈ λ²μ§Έ νΌμ°μ°μλ‘ νκ°λλ ννμμ΄λ€. λ§μ½ 첫 λ²μ§Έ νΌμ°μ°μμΈ μ‘°κ±΄μμ νκ° κ²°κ³Όκ° λΆλ¦¬μΈ κ°μ΄ μλλ©΄ μ묡μ νμ λ³νλλ€.
var x = 2;
var result = x % 2 ? 'νμ' : 'μ§μ';
console.log(x); // μ§μ
// μ 쑰건μ x % 2λ μ«μ κ° 0 λλ 1λ‘ νκ° λλλ°, λΆλ¦¬μΈ κ°μ΄ μλλ―λ‘
// μ묡μ νμ
λ³νμ΄ μΌμ΄λ μ«μ κ° 0 μ΄ falseλ‘ λ³νλμ΄ μΈ λ²μ§Έ νΌμ°μ°μκ° νκ°λμ΄ λ°νλ κ²μ΄λ€.
μΌν 쑰건 μ°μ°μμ 첫 λ²μ§Έ νΌμ°μ°μλ 쑰건μμ΄λ―λ‘ μΌν 쑰건 μ°μ°μ ννμμ 쑰건문μ΄λ€. λ°λΌμ if,elseλ¬Έμ μ¬μ©ν΄λ μΌν 쑰건 μ°μ°μ ννμκ³Ό μ μ¬νκ² μ²λ¦¬λ₯Ό ν μ μλ€. λ€λ§ λ λ¬Έμ μ°¨μ΄μ μ μΌν 쑰건 μ°μ°μλ ννμμ΄λ―λ‘ κ°μ²λΌ μ¬μ©ν μ μμ§λ§, if,elseλ¬Έμ ννμμ΄ μλλ―λ‘ κ°μ²λΌ μ¬μ© ν μ μλ€. λ°λΌμ μ΄λ€ κ°μ λ¨μνκ² κ²°μ ν΄μΌ νλ€λ©΄ if,elseλ¬Έμ νμ©νλ κ²λ³΄λ€λ μΌν쑰건 μ°μ°μ ννμμ μ¬μ©νλ νΈμ΄ μ 리νλ€.
7.5 λ Όλ¦¬ μ°μ°μ
λ Όλ¦¬ μ°μ°μλ μ°νκ³Ό μ’νμ νΌμ°μ°μλ₯Ό λ Όλ¦¬ μ°μ°νλ€. (λΆμ λ Όλ¦¬ μ°μ°μμ κ²½μ° μ°νμ νΌμ°μ¬μλ₯Ό λ Όλ¦¬ μ°μ° νλ€.)
λ Όλ¦¬ μ°μ°μ | μλ―Έ | λΆμ ν¨κ³Ό |
&& | λ Όλ¦¬κ³±(AND) | μμ |
|| | λ Όλ¦¬ν©(OR) | μμ |
! | λΆμ (NOT) | μμ |
μ£Όμν μ μ, λ Όλ¦¬ λΆμ μ°μ°μ( ! ) λ μΈμ λ λΆλ¦¬μΈ κ°μ λ°ννλ€. κ·Έλ¬λ νΌμ°μ°μκ° λ°λμ λΆλ¦¬μΈ κ°μΌ νμλ μλ€. λ§μ½ νΌμ°μ°μκ° λΆλ¦¬μΈ κ°μ΄ μλλΌλ©΄ λΆλ¦¬μΈ νμ μΌλ‘ μ묡μ νμ λ³νλλ€.
//λ
Όλ¦¬λ¦¬ κ³± μ°μ°μ
console.log(true && true); // true
console.log(true && false); // false
//λ
Όλ¦¬ ν© μ°μ°μ
console.log(true || true); // true
console.log(true || false); // true
console.log(false || true); // true
//λ
Όλ¦¬ λΆμ μ°μ°μ
console.log(!0); // true(μ«μ κ° 0μ΄ μ묡μ νμ
λ³νλμ΄ falseκ°μΌλ‘ λ³νλκ³ !μ΄ λΆμ΄ trueλ₯Ό λ°ν)
λ Όλ¦¬ν© λλ λ Όλ¦¬κ³± μ°μ°μ ννμμ νκ° κ²°κ³Όλ λΆλ¦¬μΈ κ°μ΄ μλ μλ μλ€. λ Όλ¦¬ν© λλ λ Όλ¦¬κ³± μ°μ°μ ννμμ μΈμ λ 2κ°μ νΌμ°μ°μ μ€ μ΄λ νμͺ½μΌλ‘ νκ°λλ€.(λ¨μΆ νκ°, μμΈν λ΄μ©μ νμ )
7.6 μΌν μ°μ°μ
μΌν( , ) μ°μ°μλ μΌμͺ½ νΌμ°μ°μλΆν° μ°¨λ‘λλ‘ νΌμ°μ°μλ₯Ό νκ°νκ³ λ§μ§λ§ νΌμ°μ°μμ νκ°κ° λλλ©΄ λ§μ§λ§ νΌμ°μ°μμ νκ° κ²°κ³Όλ₯Ό λ°ννλ€.
7.7 κ·Έλ£Ή μ°μ°μ
μκ΄νΈ( '( )' )λ‘ νΌμ°μ°μλ₯Ό κ°μΈλ κ·Έλ£Ή μ°μ°μλ μμ μ νΌμ°μ°μμΈ ννμμ κ°μ₯ λ¨Όμ νκ°νλ€. κ·Έλ¬λ―λ‘ κ·Έλ£Ή μ°μ°μλ₯Ό μ¬μ©νλ©΄ μ°μ°μμ μ°μ μμλ₯Ό μ‘°μ ν μ μλ€. κ·Έλ£Ή μ°μ°μλ μ°μ μμκ° κ°μ₯ λλ€. (μ΄ λΆλΆμ μνμ μ¬κ³ λ₯Ό νμ¬λ 무방ν κ² κ°λ€.)
console.log((1 + 2) * 3); // 9
7.8 typeof μ°μ°μ
typeof μ°μ°μλ νΌμ°μ°μμ λ°μ΄ν° νμ μ λ¬Έμμ΄λ‘ λ°ννλ€. typeof μ°μ°μλ μ΄ 7κ°μ§ λ¬Έμμ΄, 'string', 'number', 'undefined', 'symbol', 'boolean', 'object', 'function' μ€ νλλ₯Ό λ°ννλ€.
β»μ£Όμμ¬ν
-null κ°μ object λ¬Έμμ΄μ λ°νλλ€.(μλ°μ€ν¬λ¦½νΈμ 첫 λ²μ§Έ λ²κ·Έλ€. λ°λΌμ nullκ°μ μΌμΉ λΉκ΅ μ°μ°μ( === ) λ₯Ό ν΅ν΄ νμΈν΄μΌ νλ€.)
-ν¨μ κ°μ function λ¬Έμμ΄μ λ°ννλ€.
-μ μΈνμ§ μμ μλ³μλ₯Ό typeof μ°μ°μλ‘ μ°μ°νλ©΄ ReferenceErrorκ° λ°μνμ§ μκ³ undefined λ¬Έμμ΄μ λ°ννλ€.
console.log(typeof ''); //string
console.log(typeof 0); //number
console.log(typeof NaN); //number
console.log(typeof undefined); //undefined
console.log(typeof true); // boolean
console.log(typeof Symbol()); //symbol
console.log(typeof null); // object
console.log(typeof []); // object
console.log(typeof {}); // object
console.log(typeof function(){}); // function
console.log(typeof helloWorld); // undefined (μ‘΄μ¬νμ§ μλ μλ³μκ° νκ° λμμλ λ°νλλ λ¬Έμμ΄)
/*μ£Όμμ¬ν : typeof μ°μ°μλ₯Ό ν΅ν΄ μ°μ°ν κ²°κ³Ό κ°μ 'λ¬Έμμ΄' μ΄λ€.*/
7.9 μ§μ μ°μ°μ
ES7μμ λμ λ μ§μ μ°μ°μλ μ’νμ νΌμ°μ°μλ₯Ό λ°μΌλ‘, μ°νμ νΌμ°μ°μλ₯Ό μ§μλ‘ κ±°λ μ κ³±νμ¬ μ«μ κ°μ λ°ννλ€.
console.log(2 ** 2); // 4(2μ 2μΉ)
μ§μ μ°μ°μκ° λμ λκΈ° μ΄μ μλ Math.powλ©μλλ₯Ό μ¬μ©νλ€.
console.log(Math.pow(2, 2); // 4 (2μ 2μΉ)
β»μ£Όμμ¬ν
-μμλ₯Ό κ±°λμ κ³±μ λ°μΌλ‘ μ¬μ©ν΄ κ³μ°νλ €λ©΄ μκ΄νΈλ‘ λ¬Άμ΄μΌ νλ€. (λ¬Άμ§ μμΌλ©΄ SyntaxError λ°μ)
console.log((-5) ** 2); // 25 (-5μ 2μΉ)
μ§μ μ°μ°μλ λ€λ₯Έ μ°μ μ°μ°μμ λ§μ°¬κ°μ§λ‘ ν λΉ μ°μ°μμ ν¨κ» μ¬μ©ν μ μλ€.
var x = 2;
x **= 3;
console.log(x); // 8 (2μ 3μΉ)
7.11 μ°μ°μμ λΆμ ν¨κ³Ό
λλΆλΆμ μ°μ°μλ λ€λ₯Έ μ½λμ μν₯μ μ£Όμ§ μμ§λ§, ν λΉ μ°μ°μ, μ¦κ°/κ°μ μ°μ°μ, delete μ°μ°μ(νλ‘νΌν° μμ )λ λ€λ₯Έ μ½λμ μν₯μ μ£Όλ λΆμ ν¨κ³Όκ° μλ€.
'π Language & CS knowledge > JavaScript (λͺ¨λμλ°μ€ν¬λ¦½νΈ Deep Dive)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
09μ₯ νμ λ³νκ³Ό λ¨μΆ νκ° (0) | 2022.06.28 |
---|---|
08μ₯ μ μ΄λ¬Έ (0) | 2022.06.27 |
05μ₯ ννμκ³Ό λ¬Έ, 06μ₯ λ°μ΄ν° νμ (0) | 2022.06.23 |
04μ₯ λ³μ (0) | 2022.06.22 |
01μ₯ νλ‘κ·Έλλ°, 02μ₯ μλ°μ€ν¬λ¦½νΈλ? (0) | 2022.06.21 |