JavaScript의 강제.

JavaScript는 이상합니다. 예상치 못한 동작이 많이 발생하며 강제 변환도 그중 하나입니다. 강제는 항상 커뮤니티에서 논쟁의 대상입니다. 일부 프로그래머는 대부분의 프로그래머가 강제를 언어 설계의 흐름으로 받아들이고 이를 피하라는 조언을 하는지 여부를 기능으로 생각합니다. 그러나 무언가를 피하려면 먼저 그것을 알고 있어야 합니다. 강제로 잠수하고 해킹이 무엇인지 이해하려고 노력합시다.

강제로 알려진 자바 스크립트의 예기치 않은 유형 변환. 데이터로 작업하는 동안 숫자에서 문자열 또는 이와 유사한 것과 같은 유형으로 데이터를 변환해야 합니다. 따라서 노력을 최소화하기 위해 javascript가 자동으로 수행하지만 대부분의 시간이 제어할 수 없기 때문에 그다지 좋지는 않습니다. 그리고 시스템에 버그를 유발합니다. 그래서 대부분의 사람들이 그것을 피하지만 그것은 전적으로 당신에게 달려 있습니다. 만약 당신이 이것에 익숙하다면 당신은 그것을 피하려고 노력할 수 있습니다.

이제 강제에는 세 가지 유형이 있습니다. 궁금한? 그것에 대해 논의합시다.

1. 숫자와 문자열



예를 들어 이해하자

console.log('100' - 10)


위 코드의 결과는 어떻게 될까요? 출력이 90이 될 것이기 때문에 오류가 발생할 것이라고 생각한다면 잠시만 기다려 주세요.
자바스크립트는 스마트하기 때문에 두 개의 숫자만 뺄 수 있다는 것을 이미 알고 있으므로 문자열, 즉 '100'을 숫자, 즉 100으로 변환합니다.

알겠습니다. 이제 다른 예를 살펴보겠습니다.

console.log('100' + 10)


위의 코드에서 (-) 대신 (+) 기호에 주목하십시오. 그래서 당신은 어떻게 생각하십니까? 출력은 무엇이어야합니까?
110일거라고 생각하면 미안한데 또 틀리면 10010일텐데 왜?
양수 부호의 경우 100을 숫자로 변환하는 대신 javascript가 둘을 연결하여 결과 10010을 생성하기 때문입니다.

2. 부울



이것은 모든 것 중에서 가장 문제를 일으키는 사람이며 주로 if 문, 루프 및 논리 연산에 사용됩니다.

자, 이 예를 생각해 봅시다

console.log(true + 100)


출력이 101이 될 것이라고 예측했다면 똑똑해지고 있는 것입니다. 그 이유는 javascript가 True를 1로, False를 0으로 하기 때문입니다. 이제 다음 코드의 출력을 확실히 예측할 수 있을 것이라고 확신합니다.

console.log(false + 100) // obiously 100


당신이 그것을 얻지 못한 경우. False는 0으로 간주되므로 0 + 100은 100이 됩니다.

3. 평등



우리는 이 게시물의 끝을 향해 가고 있으며 당신이 아이디어를 얻었기를 바랍니다. 이제 마지막을 살펴보겠습니다.

console.log('100' == 100)


이중 등호 연산자의 경우 javascript가 왼쪽과 오른쪽의 유형을 확인하지 않기 때문에 위의 코드는 True를 반환합니다. 값이 같은지 여부만 확인합니다.

console.log('100' === 100) // False


삼중 등호의 경우 삼중 등호 연산자는 좌변과 우변의 타입을 엄격하게 검사하기 때문에 결과는 False가 됩니다.

나는 당신이 내 요점을 모두 이해하기를 바랍니다. 그때까지 새로운 포스팅으로 찾아뵙겠습니다 안녕히계세요.

좋은 웹페이지 즐겨찾기