javascript - [배열이 비어 있는지 빠르게 확인] []==false 왜 true를 반환합니까?
習慣沉默
習慣沉默 2017-07-05 10:51:52
0
6
1297
으아악

이렇게 하면 배열이 비어 있는지를 신속하게 판별할 수 있다고 볼 수 있지만 원리에는 약간의 의문이 있습니다.
알려진 것:

1. 항등 연산자 "==": 먼저 변환한 다음 비교합니다. 피연산자 중 하나가 부울이면 동일한지 비교하기 전에 숫자 값으로 변환됩니다. False는 0으로 변환되고 true는 1로 변환됩니다.

2. 한 피연산자가 객체이고 다른 피연산자가 아닌 경우 객체의 valueOf() 메서드를 호출하고 얻은 기본 유형 값을 사용하여 변환합니다.

그래서 []==fasle의 오른쪽은 0으로 변환됩니다. 왼쪽은 어떻습니까? 어떻게 변환되나요?

習慣沉默
習慣沉默

모든 응답(6)
黄舟

이것은 당신을 위한 자바스크립트 비교표입니다: 관계형 연산자와 동등 연산자

typecho

http://tech.youzan.com/javasc...
읽고 나면 이해가 되실 겁니다

大家讲道理

비교를 위해 불리언 값으로 변환하기 때문에
[]==false
=>
true == false  //false

刘奇

먼저 숫자 0으로 변환한 후 비교하세요.

世界只因有你

배열이 비어 있는지 판단하기 위해 이 방법을 사용하는 것이 합리적이겠죠?

으아악

안 튕길 줄 알았는데 튕겼어요. 대부분의 경우 여전히 길이로 판단됩니다. 물론 길이도 요소 수를 판단할 때 함정입니다!

滿天的星座

js의 내부 메커니즘은 빈 배열이 false이므로 false==false가 true라고 말할 수 있습니다! 그러면 비어 있지 않은 배열이 자연스럽게 true로 변환되고 true==false는 true가 아닙니다! 이해하기 어려운 점이 있나요?

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿