Javascript의 암시적 강제
5921 단어 nodetypescriptjavascript
우리가 사용할 때
Number('89') or String(55)
유형을 다른 유형으로 변환하기 위해 값을 직접 변환하므로 Explicit 강제 변환을 수행하고 있습니다.
그러나 경우에 따라 JS Engine은 일부 작업을 실행하기 위해 변수를 변환해야 합니다.
예를 들어
==
(등호 연산자)를 사용할 때 두 값이 같은 유형이 아니면 암시적 강제 변환을 사용해야 합니다(JS 엔진이 값을 자체적으로 변환함).⚠️
===
로 착각하지 마세요.문제는 이 경우 이 프로세스를 어떻게 처리하느냐입니다.
55 == '55'
// or
'toto' == { name: 'toto' }
설명된 예와 함께 이 프로세스에 대한 치트 목록을 제공합니다!
프로세스를 이해하는 일반적/쉬운 방법이지만 개체 대 모든 비교를 위해 프로세스에 대한 몇 가지를 요약했습니다.
이 과정은 나중에 설명하겠지만 전역 논리만 이해하려는 경우에는 필요하지 않습니다.
예시
문자열 대 숫자
// 1)
'toto' == 24
// Convert string into number so
Number('toto') == 24
// But we got NaN for this conversion
NaN == 24 // false !
개체 대 문자열
// 2)
'hello' == {}
// Use .toString() with object vs any
'hello' == {}.toString()
// So we got
'hello' == '[object Object]' // false
객체 대 부울
// 3)
true == {}
// Use .toString() with object vs any
true == {}.toString()
true == '[object Object]' // number vs string
// convert boolean into number Number (true) = 1
1 == '[object Object]'
// We have String vs Number,
// Almost done ! We just need to convert string into number now
1 == Number('[object Object]')
// But
1 == NaN // false !
고급 부분
개체 대 모든 비교의 경우 조금 더 복잡합니다. 사실 이 작업을 2가지 종류로 나누어야 합니다.
날짜 객체의 경우
object.toString()
를 사용해야 합니다. 반환 값이 기본 값이면 비교하고, 그렇지 않으면 object.valueOf()
를 사용하고, 이 값이 기본 값이 아니면 TypeError를 던지고, 그렇지 않으면 값을 반환합니다.다른 객체*의 경우
object.valueOf()
를 사용해야 합니다. 반환 값이 기본 값이면 비교하고, 그렇지 않으면 object.toString()
를 사용하고, 이 값이 기본 값이 아니면 TypeError를 던지고, 그렇지 않으면 값을 반환합니다.일반적으로
.toString()
는 object vs any에만 사용하지만 이제 강제 변환 처리를 더 잘 이해할 수 있습니다!나는 당신이 이 독서를 좋아하기를 바랍니다!
🎁 저를 팔로우하고 저를 MP 하시면 제 새 책
Underrated skills in javascript, make the difference
을 무료로 받으실 수 있습니다 😁또는 가져오기HERE
🎁 MY NEWSLETTER
☕️할 수 있습니다SUPPORT MY WORKS 🙏
🏃♂️ 👇에서 저를 팔로우하실 수 있습니다.
🕊 트위터 :
👨💻 Github: https://github.com/Code-Oz
그리고 이 글을 🔖 표시할 수 있습니다!
Reference
이 문제에 관하여(Javascript의 암시적 강제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codeoz/implicit-coercion-in-javascript-neh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)