π‘ 1. νμ λ³ν
- μλ°μ€ν¬λ¦½νΈ λͺ¨λ κ°μλ νμ μ΄ μμ΅λλ€. κ°λ°μ νλ€ λ³΄λ©΄ λ°μ΄ν° νμ μ΄ μλμΌλ‘ λ³νμ΄ λκ±°λ, κ°λ°μκ° μλμ μΌλ‘ λ°μ΄ν° νμ μ λ°κΎΈλ κ²½μ°κ° μμ΅λλ€. κ°λ°μκ° μλμ μΌλ‘ λ°κΎΈλ κ²μ λͺ μμ νμ λ³ν(Explicitcoercion) λλ νμ μΊμ€ν (Type casting)μ΄λΌκ³ ν©λλ€. λ°μ΄ν° νμ μ΄ μλμΌλ‘ λ³νλλ κ²μ μ묡μ νμ λ³ν(Implicit coercion) λλ νμ κ°μ λ³ν(Type coercion)μ΄λΌκ³ ν©λλ€.
// λͺ
μμ νμ
λ³ν (κ°λ°μκ° λ³κ²½νλ κ²)
let x = 10;
let str_x = x.toString(); // μ«μ νμ
μ λ¬Έμ νμ
μΌλ‘ λ³κ²½(μΊμ€ν
)
console.log(typeof(str_x)); // 'string'
// μ묡μ νμ
λ³ν (μλμ μΌλ‘ λ³κ²½λλ κ²)
let y = 10;
let str_y = 10 + 'μ΅'; // μ«μμ λ¬Έμμ΄μ λνλ©΄ μλ‘μ΄ λ¬Έμμ΄μ΄ μμ±
console.log(typeof(str_y)); // 'string';
- λͺ μμ νμ λ³ν, μ묡μ νμ λ³ν λ λ€ λ³μμ ν λΉλ κ°μ νμ μ λ³κ²½νλ κ²μ΄ μλ, λ³κ²½ν νμ μ μλ‘μ΄ κ°μ ν λΉνλ κ²μ λλ€. κ·Έλ¬κ³ λμ λ³κ²½λκΈ° μ μ ν λΉλ κ°λ€μ΄ λ€λ₯Έ λ³μμμ μ°κ³ μμ§ μλ€λ©΄ κ°λΉμ§ μ½λ ν°(μ²μλΆ)μ μν΄μ λ©λͺ¨λ¦¬μμ μ κ±°λ©λλ€.
π‘ 2. μ묡μ νμ λ³ν
- μ묡μ νμ λ³νμ΄ λ°μνλ©΄ λ¬Έμμ΄, μ«μ, booleanκ³Ό κ°μ μμ νμ μ€ νλμ νμ μΌλ‘ μλ λ³νλ©λλ€.
π£ 2.1 λ¬Έμμ΄ νμ μΌλ‘ λ³ν (μ«μμμ λ¬Έμλ‘)
// λ¬Έμμ΄ μ°κ²° μ°μ°μ
1 + "2" // "12"
10 + " " // "10"
- μ«μ νμ μ λ¬Έμμ΄μ λνλ©΄ μλ‘μ΄ λ¬Έμμ΄ νμ μ΄ λ°νλ©λλ€.
π£ 2.2 μ«μ νμ μΌλ‘ λ³ν
1 - '10' // -9
1 * '10' // 10
1 / '10' // 0.1
+'' // 0
+'0' // 0
// boolean
+true // 1
+false // 0
// null
+null // 0
- μ«μ νμ κ³Ό λ¬Έμ νμ μ μ°μ μ°μ°(+μ μΈ)μ νλ©΄ λ¬Έμ νμ μ΄ μ묡μ νμ λ³νμ μν΄μ μ«μ νμ μΌλ‘ λ³νμ΄ λ ν μ°μ°μ΄ μ΄λ£¨μ΄μ§λλ€.
- λ¬Έμ, boolean, null νμ λ± μμ +μ°μ°μλ₯Ό λΆμ΄λ©΄ μ묡μ νμ λ³νμΌλ‘ μΈν΄ μ«μ νμ μΌλ‘ λ³νλ©λλ€. true κ°μ 1, false κ°μ 0μ΄ λκ³ , null κ°λ boolean νμ μμ falseμ΄λ―λ‘ 0μΌλ‘ λ³νλ©λλ€.
π£ 2.3 boolean νμ μΌλ‘ λ³ν
- ifλ¬Έμ΄λ forλ¬Έκ³Ό κ°μ μ μ΄λ¬Έμ 쑰건μμ boolean κ°μ λ°νν΄μΌ λ©λλ€. κ·Έλμ μλ°μ€ν¬λ¦½νΈ μμ§μ μ μ΄λ¬Έμ 쑰건μμ νκ° κ²°κ³Όκ° boolean κ°μ΄ μλλΌλ©΄ μ묡μ νμ λ³νμ μ§νν©λλ€.
if('') {
console.log('λΉ λ¬Έμμ΄');
}
if(true) {
console.log('boolean');
}
if(0) {
console.log('μ«μ');
}
if('str') {
console.log('λ¬Έμμ΄');
}
if(null) {
console.log('nullνμ
');
}
// boolean
// λ¬Έμμ΄
- μ μμμ κ°μ΄ boolean κ°μ΄ μλ νμ μ΄ μ‘°κ±΄μμ λ€μ΄κ°λ©΄ μ묡μ νμ λ³νμ΄ μΌμ΄λλλ°, μ΄λ Truthyκ°(μ°ΈμΌλ‘ μΈμν κ°) λλ Falsyκ°(κ±°μ§μΌλ‘ μΈμν κ°)μΌλ‘ ꡬλΆλμ΄ Truthyλ trueλ‘ Falsyλ falseλ‘ λ³νλ©λλ€.
Truthy | Falsy |
- true - λ¬Έμμ΄ (λΉ λ¬Έμμ΄ μ μΈ) : 'μλ νμΈμ' - μ«μ (0, -0μ μ μΈ) : 1, 2, -1, -20 - λ°°μ΄ : [], [1, 2, 3, 4] - κ°μ²΄ : {}, {a:1, b:2, c:3} |
- false - undefined - null - 0, -0 - NaN - "" , '' (λΉλ¬Έμμ΄) |
π‘ 3. λͺ μμ νμ λ³ν
π£ 3.1 λ¬Έμμ΄ νμ μΌλ‘ λ³ν
- λ¬Έμμ΄ νμ μΌλ‘ λ³ννλ λ°©λ²μ μ£Όλ‘ 3κ°μ§κ° μμ΅λλ€.
1. String μμ±μλ₯Ό μ¬μ©.
2. Object.prototype.toString λ©μλ μ¬μ©.
3. λ¬Έμμ΄ μ°κ²° μ°μ°μ μ¬μ©.
// 1. String μμ±μλ₯Ό μ¬μ©.
console.log(String(1)); // '1'
console.log(String(true)); // 'true'
// 2. Object.prototype.toString λ©μλ μ¬μ©.
console.log((1).toString()); // '1'
console.log((true).toString()); // 'true'
// 3. λ¬Έμμ΄ μ°κ²° μ°μ°μ μ¬μ©.
console.log(1+''); // '1'
console.log(true+''); // 'true'
π£ 3.2 μ«μ νμ μΌλ‘ λ³ν
- μ«μ νμ μΌλ‘ λ³ννλ λ°©λ²μ 4κ°μ§κ° μμ΅λλ€.
1. Number μμ±μλ₯Ό μ¬μ©.
2. parseInt, parseFloat ν¨μ μ¬μ©.
3. λ¨ν μ°κ²° μ°μ°μ μ¬μ©.
4. μ°μ μ°μ°μ μ¬μ©.
// 1. Number μμ±μλ₯Ό μ¬μ©.
console.log(Number('10')); // 10
console.log(Number(true)); // 1
console.log(Number('κ°λλ€')); // NaN
// 2. parseInt, parseFloat ν¨μ μ¬μ©. (λ¬Έμμ΄λ§ λ³ν κ°λ₯)
console.log(parseInt('10')); // 10
console.log(parseInt(true)); // NaN
console.log(parseInt('κ°λλ€')); // NaN
console.log(parseFloat('6.17')); // 6.17
// parseIntλ μμμ μ κ±°λ¨
console.log(parseInt('6.17')); // 6
// 3. λ¨ν μ°κ²° μ°μ°μ μ¬μ©.
console.log(+'10'); // 10
console.log(+'6.17'); // 6
console.log(+true); // 1
// 4. μ°μ μ°μ°μ μ¬μ©.
console.log('-1' * 2); // -2
console.log('20' / 4); // 5
console.log('4' % 3); // 1
console.log(true * 10); // 10
π£ 3.3 boolean νμ μΌλ‘ λ³ν
- boolean νμ μΌλ‘ λ³ννλ λ°©λ²μ 2κ°μ§κ° μμ΅λλ€.
1. Boolean μμ±μλ₯Ό μ¬μ©.
2. !λΆμ λ
Όλ¦¬ μ°μ°μλ₯Ό μ¬μ©.
// 1. Boolean μμ±μλ₯Ό μ¬μ©.
console.log(Boolean(10)); // true
console.log(Boolean('κ°λ')); //true
console.log(Boolean(0)); // false
console.log(Boolean(null)); // false
console.log(Boolean({})); // true
console.log(Boolean([])); // true
// 2. !λΆμ λ
Όλ¦¬ μ°μ°μλ₯Ό μ¬μ©.
console.log(!'x'); // false
console.log(!!'x'); // true
console.log(!0); // true
console.log(!!0); // false
console.log(!null); // true
console.log(!!null); // false
π μ 리
- νμ λ³νμλ λͺ μμ νμ λ³νκ³Ό μ묡μ νμ λ³νμ΄ μμ΅λλ€.
- κ°λ°μκ° μ§μ νμ μ λ³κ²½νλ κ²μ λͺ μμ νμ λ³νμ΄λΌ ν©λλ€.
- μλ°μ€ν¬λ¦½νΈ μμ§μ μν΄μ μλμ μΌλ‘ νμ μ΄ λ³κ²½λλ κ²μ μ묡μ νμ λ³νμ΄λΌκ³ ν©λλ€.
κΈ΄ κΈ μ½μ΄μ£Όμ
μ κ°μ¬ν©λλ€ :)
νλ¦° λ΄μ©μ΄ μκ±°λ, λ§λΆμΌ λ΄μ©μ΄ μλ€λ©΄ μΈμ λ μ§ λκΈ λ¬μμ£ΌμΈμ!
μ κΈμ΄ μ‘°κΈμ΄λλ§ μ½μΌμ λΆλ€μκ² λμμ΄ λλλ‘ λ
Έλ ₯νκ² μ΅λλ€
λ€μ νΈμ 봬μ~
'Front-End > JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μλ°μ€λ¦½νΈ(JavaScript )] 10. ν¨μ (Function) (0) | 2022.02.04 |
---|---|
[μλ°μ€λ¦½νΈ(JavaScript )] 09. κ°μ²΄ (Object) (0) | 2022.02.03 |
[JavaScript] 07. λ°λ³΅λ¬Έ (0) | 2022.01.26 |
[JavaScript] 06. λΈλ‘λ¬Έ & 쑰건문 (0) | 2022.01.25 |
[JavaScript] 05. μ°μ°μ (0) | 2022.01.24 |