반응형
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)
반응형
'Programing' 카테고리의 다른 글
문자열 이름으로 클래스 속성 설정 / 가져 오기 (0) | 2020.11.12 |
---|---|
ConfigurationManager.AppSettings [Key]는 매번 web.config 파일에서 읽습니까? (0) | 2020.11.12 |
Python 3에서 True와 False의 다른 객체 크기 (0) | 2020.11.12 |
XML 구문 분석-ElementTree 대 SAX 및 DOM (0) | 2020.11.12 |
'문자열'의 정의 뒤에 숨겨진 역사 (0) | 2020.11.12 |