JavaScript의 `==` 연산자가 모순되는 조건으로 진정한 평가를 생성할 수 있습니까?
충돌하는 조건이 있는 경우 논리적 교차가 참으로 평가될 수 있습니까?
유명 기술 기업이 제기한 흥미로운 인터뷰 질문에서 다음과 같은 질문이 제기됩니다. JavaScript에서 표현식(a == 1 && a == 2 && a == 3)이 true로 평가될 수 있습니까?
처음에는 겉보기에 모순되는 조건 특성을 고려할 때 이것이 믿기지 않는 것처럼 보일 수 있습니다. 그러나 JavaScript의 항등 연산자(==)를 자세히 살펴보면 이 수수께끼에 대한 답을 찾을 수 있습니다.
JavaScript의 항등 연산자는 엄격하게 동일한 연산자(===)와 달리 자동으로 유형 강제 변환을 수행합니다. 비교를 위해 값을 공통 유형으로 변환합니다. 이는 특히 동적 값 생성을 허용하는 사용자 정의된 toString(또는 valueOf) 함수를 사용하여 객체를 조작할 수 있는 가능성을 열어줍니다.
다음 예를 고려하세요.
const a = { i: 1, toString: function () { return a.i++; } }
이 사용자 정의를 사용하면 toString 함수는 a가 암시적으로 문자열로 강제 변환될 때마다(예: 로깅을 위해) a의 내부 i 값이 증가합니다. 이는 세 가지 동등 조건을 모두 충족하는 메커니즘을 제공합니다.
a == 1 // true (initially i = 1) a == 2 // true (after toString call, i = 2) a == 3 // true (after second toString call, i = 3)
따라서 객체의 동적 동작과 ==의 암시적 유형 변환을 활용하여 (a == 1 && a == 2 && a == 3) JavaScript에서 true로 평가됩니다.
위 내용은 JavaScript의 `==` 연산자가 모순되는 조건으로 진정한 평가를 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









