-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
명시적 변환 vs 암묵적 변환 #3
Comments
명시적 변환 vs 암묵적 변환
암묵적 변환을 하지 않는 연산자는 String 변환String(123) // 명시적
123 + '' // 암시적 String(123) // '123'
String(-12.3) // '-12.3'
String(null) // 'null'
String(undefined) // 'undefined'
String(true) // 'true'
String(false) // 'false'
String(Symbol('my symbol')) // 'Symbol(my symbol)'
'' + Symbol('my symbol') // TypeError is thrown Boolean 변환Boolean(2) // 명시적
if (2) { ... } // 논리적 문맥 때문에 암시적
!!2 // 논리적 문맥 때문에 암시적
2 || 'hello' // 논리적 문맥 때문에 암시적 논리 연산자(예 : // true를 반환하는 것이 아닌 123를 반환하고 있다.
// 'hello' and 123 은 표현식을 계산하기 위해서 Boolean으로 강제 변환을 한다.
let x = 'hello' && 123; // 123 Boolean('') // false
Boolean(0) // false
Boolean(-0) // false
Boolean(NaN) // false
Boolean(null) // false
Boolean(undefined) // false
Boolean(false) // false
Boolean({}) // true
Boolean([]) // true
Boolean(Symbol()) // true
!!Symbol() // true
Boolean(function() {}) // true Numeric 변환
Number('123') // 명시적 - 123
+'123' // 암시적 - 123
123 != '456' // 암시적 - true
4 > '5' // 암시적 - false
5 / null // 암시적 - Infinity
true | 0 // 암시적 - 1 Number(null) // 0
Number(undefined) // NaN
Number(true) // 1
Number(false) // 0
Number(" 12 ") // 12
Number("-12.34") // -12.34
Number("\n") // 0
Number(" 12s ") // NaN
Number(123) // 123
Number(Symbol('my symbol')) // TypeError is thrown
+Symbol('123') // TypeError is thrown Tips
null == 0 // false, null is not converted to 0
null == null // true
undefined == undefined // true
null == undefined // true
null === undefined // false
var value = NaN;
if (value !== value) { console.log("we're dealing with NaN here") } |
🙏 Reference
The text was updated successfully, but these errors were encountered: