Programing

JavaScript : 빈 배열, []는 조건부 구조에서 참으로 평가됩니다.

lottogame 2020. 11. 12. 07:42
반응형

JavaScript : 빈 배열, []는 조건부 구조에서 참으로 평가됩니다. 왜 이런거야?


이 식을 예상했기 때문에 코드에서 많은 버그가 발생했습니다.

Boolean([]); 거짓으로 평가합니다.

그러나 이것은 사실로 평가 되었기 때문에 그렇지 않았습니다.

따라서 []다음과 같이 반환 될 수있는 함수 :

// Where myCollection possibly returned [ obj1, obj2, obj3] or []
if(myCollection)
{
  // ...

}else
{
  // ...
}

예상 한 일을하지 않았습니다.

내가 []빈 배열 이라고 잘못 생각하고 있습니까?

또한이 동작이 모든 브라우저에서 일관됩니까? 아니면 거기에도 문제가 있습니까? 그런데 Goolgle Chrome에서이 동작을 관찰했습니다.


에서 http://www.sitepoint.com/javascript-truthy-falsy/

다음 값은 항상 거짓입니다.

  • 그릇된
  • 0 (영)
  • ""(빈 문자열)
  • 없는
  • 찾으시는 주소가 없습니다
  • NaN (Not-a-Number!를 의미하는 특수 숫자 값)

"0"(따옴표로 묶인 0), "false"(따옴표로 묶인 false), 빈 함수, 빈 배열 및 빈 개체를 포함하여 다른 모든 값은 사실입니다.


.length요소가 포함되어 있는지 확인하려면 해당 배열 의을 확인해야합니다 .

if (myCollection) // always true
if (myCollection.length) // always true when array has elements
if (myCollection.length === 0) // same as is_empty(myCollection)

참고 URL : https://stackoverflow.com/questions/19146176/javascript-empty-array-evaluates-to-true-in-conditional-structures-why-is

반응형