νλ³νμλ λ€μκ³Ό κ°μ΄ λκ°μ§κ° μμ΅λλ€.
μλ°μ€ν¬λ¦½νΈλ νμ
μ΄ λ§€μ° μ μ°ν μΈμ΄λΌμ μλ°μ€ν¬λ¦½νΈ μμ§μ΄ νμμ λ°λΌ μμμ λ³νμ νΉμ κ°λ°μμ μλμ λ°λΌ λͺ
μμ λ³νμ μ€ννλλ°!
μμμ ν λ³ν(Implicit type conversion)
μμμ λ³νμ΄λ μλ°μ€ν¬λ¦½νΈ μμ§μ΄ νμμ λ°λΌ μλμΌλ‘ λ°μ΄ν° νμ
μ λ³νμν€λ κ²μ
λλ€.
μ°μ μ°μ°μ, λλ±λΉκ΅
1.μ°μ μ°μ°μ
'+' μ°μ°μλ μ«μλ³΄λ€ λ¬Έμμ΄μ΄ μ°μ μ λκΈ° λλ¬Έμ, μ«μνμ΄ λ¬Έμνμ λ§λλ©΄ λ¬ΈμνμΌλ‘ λ³ννμ¬ μ°μ° λ©λλ€!
number + string // string //μ«μμ λ¬Έμκ° λ§λ λ¬Έμλ‘ μ°μ°!
string + string // string //λ¬Έμ + λ¬Έμ = λ¬Έμ
number + number // number //μ«μ + μ«μ = μ«μ
// λνκΈ° μΈ ( *, /, -, % ) λ€λ₯Έ μ°μ°μλ μ«μνμ΄ λ¬Έμν λ³΄λ€ μ°μ μ λ¨!
string * number // number //λ¬Έμ * μ«μ = μ«μ
string * string // number //λ¬Έμ * λ¬Έμ = μ«μ
number * number // number //μ«μ * μ«μ = μ«μ
μ~ μ°μ μ°μ°μλ λ¬Έμμ΄ μ°μ μ΄κ³ , λ€λ₯Έ μ°μ°μλ€μ μ«μκ° μ°μ μ΄κ΅¬λ!
μ κΉ?π€·ββοΈstringμ μ number κ°μΌλ‘ λ°μμ€μ§?
κ·Έ μ΄μ λ λ°λ‘ μλ°μ€ν¬λ¦½νΈ μμμ νλ³νμΌλ‘ μλ°μ€ν¬λ¦½νΈ μ체μμ
μ λ¬Έμλ λ¬Έμλ₯Ό κ³±ν΄? λ¬Έμλ λ¬Έμλ₯Ό μ λλ ? λ§λ μλκΈ° λλ¬Έμ μλ°μ€ν¬λ¦½νΈ μ체μμ
λ μ΄κ±° μλͺ» μ
λ ₯νκ±° κ°μλ°? νλ©΄μ λ¬Έμλ₯Ό numberλ‘ μΈμνλκ±°λ€!
λμΉ λΉκ΅
μλ μμ λ μ격νμ§ μμ λμΉ(==)λΉκ΅μ΄λ©°, μλμ κ²°κ³Όκ°μ μ’μ°ν λ³νν κ²½μ° λͺ¨λ '0==0μ΄κΈ° λλ¬Έμ' 'true'μ΄λ€.
true == 1; // trueλ 1λ‘ λ³ν
false == 0; // falseλ 0μΌλ‘ λ³ν
'1' == true; // '1'μ trueλ‘ λ³ν
'1' == 1; // '1'μ 1λ‘ λ³ν
null == undefined // true 0 == 0
β0β == 0 // true 0 == 0
0 == false // true 0 == 0
β0β == false // true 0 == 0
λ κ°μ λΉκ΅ν λ λ°μ΄ν°νμ
μ λ³ννμ§ μλ μ격ν λμΉ(===)λΉκ΅μ νΌλλμ§ μλλ‘ νλ€.
μ κΉ?π μ격νμ§ μμ λμΉλ λκ³ ,,, μ격ν λμΉλ λμΌ .. ?
κ·Έλμ μμλ³Έ κ²°κ³Ό
Equal Operator ==
μλ‘ νμ
μ΄ λ€λ₯΄λ©΄ κ°μ νμ
μΌλ‘ λ³νμ ν΄μ λΉκ΅λ₯Ό νλ€.
Strict Equal Operator ===
μλ‘ νμ
μ΄ λ¬λΌλ νμ
λ³ν μμ΄ μ격νκ² λΉκ΅λ₯Ό νλ€κ³ νλ€
πμλ₯Ό λ€μ΄λ³ΌκΉμ ?!
==μ°μ°μ
10 == 10 // true
10 == '10' // true
true == 1 // true
true == '1' // true
true == 'true' // false
null == undefined // true
===μ°μ°μ
10 === 10 // true
10 === '10' // false
true === 1 // false
true === 'true' // false
null === undefined // false
NaN === NaN // false
μ.. == μ°μ°μλ typeμ΄ λ¬λΌλ typeμ λ³ν ν κ°μ μΆλ ₯ ν΄μ£Όκ³ ,
=== μ°μ°μ νΉμ§μ type λ€λ₯΄λ©΄ false λ₯Ό λ°ν νλꡬλ.
μΆκ°λ‘ ===μ°μ°μ νΉμ§μ
NaN κ°μ μκΈ° μμ μ ν¬ν¨νμ¬ μ΄λ ν κ°κ³Όλ μΌμΉνμ§ μλꡬλ..
μ¦ μ°μ°μμ NaN κ°μ΄ μ‘΄μ¬νλ κ²½μ° νμ false ꡬλ!
λͺ
μμ λ³ν
λͺ
μμ λ³νμ΄λ κ°λ°μκ° μλλ₯Ό κ°μ§κ³ λ°μ΄ν°νμ
μ λ³νμν€λ κ²μ΄λ€.
νμ
μ λ³κ²½νλ κΈ°λ³Έμ μΈ λ°©λ²μ Object(), Number(), String(), Boolean()
μ κ°μ ν¨μλ₯Ό μ΄μ©νλλ° new μ°μ°μκ° μλ€λ©΄ μ¬μ©ν ν¨μλ νμ
μ λ³ννλ ν¨μλ‘μ¨ μ¬μ©λλ€.
var trans = 100; //Number
Object(trans); //100
console.log(typeof trans); //Number
String(trans); //β100"
console.log(typeof trans); //String
Boolean(trans); //true
console.log(typeof trans); //Bolean
νλμ Type μ Number Type μΌλ‘ λ³ν μν€λ λ°©λ²μ΄ μλ€!
Number()
Number()λ μ μνκ³Ό μ€μνμ μ«μλ‘ λ³ννλ€.
Number(β12345β); //12345
Number(β2β*2); //4
ParseInt()
parseInt()λ μ μνμ μ«μλ‘ λ³ννλ€.
π€·ββοΈIF
λ¬Έμμ΄μ΄ 'μ«μ0'μΌλ‘ μμνλ©΄ 8μ§μλ‘ μΈμνλ€.
μ λ΄κ°.. μ΄ μ¬μ€λ§ μκ³ μμμΌλ©΄
const num = 01234;
console.log(num);
answer= 668 μ΄λΌλκ²μ λ΄€μλ μ΄κ² μ? μ΄λ¬μ§ μμμν
λ° μ§μ§ μ€μν μ 보λ€!
κ·Έλ¦¬κ³ '0x,0X'λ‘ μμνλ€λ©΄ ν΄λΉ λ¬Έμμ΄μ 16μ§μ μ«μλ‘ μΈμνλ€.
λν μ λΆλΆ λΉ κ³΅λ°±μ λκ³ λμ€λ λ¬Έμλ λͺ¨λ 무μλμ΄μ NaNκ°μ λ°ννλ€κ³ νλ€.
parseFloat()
parseFloat()λ λΆλ μμμ μ μ«μλ‘ λ³ννλ€. parseInt()μλ λ¬λ¦¬ parseFloat()λ νμ 10μ§μλ₯Ό μ¬μ©νλ©° parseFloat() λν μλΆλΆ λΉ κ³΅λ°±μ λκ³ λμ€λ λ¬Έμλ λͺ¨λ 무μλμ΄ NaNμ λ°ννλ€.
parseFloat(β!123β); //NaN 무μλμ΄μ ν΄λΉ κ° μΆλ ₯
parseFloat(β123.123456β); //123.123456
parseInt(β123.123456β); //123
parseFloat(β 123.123456β); //123.123456
parseFloat(β a123.123456β); //NaN 무μλμ΄μ ν΄λΉ κ° μΆλ ₯
μ΄λ²μ String TypeμΌλ‘ λ°κΎΈλ λ°©λ²μ 곡λΆν΄λ³΄μ!
String()
String(123) // '123'
String(-12.3) // '-12.3'
String(null) // 'null'
String(undefined) // 'undefined'
String(true) // 'true'
String(false) // 'false'
무쑰건 ''κ°μΌλ‘ μΆλ ₯μ΄ λλ€!
toString()
toString()λ μΈμλ‘ κΈ°μλ₯Ό μ νν μ μλ€. μΈμλ₯Ό μ λ¬νμ§ μμΌλ©΄ 10μ§μλ‘ λ³ννλ€.
var trans = 100;
trans.toString(); //β100"
trans.toString(2); //β1100100"
trans.toString(8); //β144"
var boolT = true;
var boolF = false;
boolT.toString(); //βtrueβ
boolF.toString(); //βfalseβ
μ€.. toString()μλ€κ° ()μλ€κ° μ§μκ°μ μ£Όλ©΄ ν΄λΉ μ§μ κ°μΌλ‘ κ°μ΄ νν λλꡬλ!
μ λ¬νμ§ μμΌλ©΄ 10μ§μλ‘ λ³ννλ€ λ©λͺ¨π
toFixed()
toFixed()μ μΈμλ₯Ό λ£μΌλ©΄ μΈμκ°λ§νΌ λ°μ¬λ¦Όνμ¬ μμμ μ νννλ©° μμμ μ λμΉλ κ°μ΄ μΈμλ‘ λ€μ΄μ€λ©΄ 0
μΌλ‘ κΈΈμ΄λ₯Ό λ§μΆ λ¬Έμμ΄μ λ°ννλ€.
var trans = 123.456789;
var roundOff = 99.987654;
trans.toFixed(); //β123"
trans.toFixed(0); //β123"
trans.toFixed(2); //β123.46"
trans.toFixed(8); //β123.45678900"
roundOff.toFixed(2); //β99.99"
roundOff.toFixed(0); //β100"
μμμ λ§νΌ κ°μ λ°μ¬λ¦Όμ νλꡬλ .. 123.456789; μμμ μ΄ 6μ리 λ°μ μμ΄μ 8μ리λ 0μΌλ‘ λ체νλꡬλ μ΄ν΄ μλ£!
λλμ΄ λ§μ§λ§ λ³νμΈ Booleanμ΄λ€!
trueμ falseλ‘ λλ μ§λ
Boolean()
Boolean('') // false
Boolean(0) // false
Boolean(-0) // false
Boolean(NaN) // false
Boolean(null) // false
Boolean(undefined) // false
Boolean(false) // false
0 = false
NaN = false
null = false
undefined = false
false = false
μ€νΈ ... λ°λλ‘ trueμΈ κ²½μ°λ λ΄μΌκ² λ€!
Boolean({}) // true
Boolean([]) // true
Boolean(Symbol()) // true
!!Symbol() // true
Boolean(function() {}) // true
λͺ©λ‘μ μλ κ°μ trueκ°μ²΄, ν¨μ, Array, Date, μ¬μ©μ μ μ μ ν λ±μ ν¬ν¨νμ¬ λ‘ λ³νλλ€κ³ νλ€.
true 보λ€λ false μ κ°μ κΈ°μ΅νκ³ μμΌλ©΄ μ΄ν΄νκΈ° λ μ½κ² λ€ππ
<μΆμ² μλ£>
https://developer92.tistory.com/11
https://medium.com/gdana/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98-%ED%98%95%EB%B3%80%ED%99%98%EC%9D%80-%EB%91%90%EA%B0%80%EC%A7%80%EB%8B%A4-b46875be4a88
https://www.devkuma.com/docs/javascript/%ED%98%95-%EB%B3%80%ED%99%98-type-conversion/
https://www.freecodecamp.org/news/js-type-coercion-explained-27ba3d9a2839/
μΆμ²: https://developer-talk.tistory.com/184 [νλ²ν μ§μ₯μΈμ κ³΅λΆ μ 리:ν°μ€ν 리]
https://velog.io/@yunsungyang-omc/JS-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98-%ED%98%95%EB%B3%80%ED%99%98Type-Casting