[ ] 는 JS 에서 사실입니까 ?
if ([]) {
console.log([]==false)
}
[]
(빈 배열)이 참이면 []==false
가 true
로 평가되는 이유는 무엇입니까? []
가 거짓이면 코드가 if 블록에 들어가는 이유는 무엇입니까?이 두 가지를 하나씩 답해 봅시다.
다음은 JavaScript의 유일한 거짓 값입니다.
false
""
(빈 문자열)0
NaN
null
undefined
따라서
[]
는 확실히 거짓이 아닙니다코드가 if 블록에 들어가는 이유는 무엇입니까?
JavaScript가
[]
를 부울로 강제 변환하여 true
가 되기 때문에 코드가 if 블록에 들어가고 있습니다.console.log(Boolean([])) // true
[]==거짓이 참인 이유는 무엇입니까?
Equal (==)
If the two operands are not of the same type, JavaScript converts the operands then applies strict comparison. If either operand is a number or a boolean, the operands are converted to numbers if possible; else if either operand is a string, the other operand is converted to a string if possible. If both operands are objects, then JavaScript compares internal references which are equal when operands refer to the same object in memory.
따라서 여기 피연산자 중 하나는 부울이므로 JavaScript는 두 피연산자를 모두 숫자로 변환하고 엄격한 비교를 수행합니다.
Number([])
와 Number(false)
모두 0
를 제공하므로 비교는 true
가 됩니다.console.log([]==false)
// This is similar to:
console.log(Number([])===Number(false))
감사!!
더 많은 놀라운 콘텐츠를 보려면 내 (인스타그램 페이지)[ ]를 팔로우하세요.
Reference
이 문제에 관하여([ ] 는 JS 에서 사실입니까 ?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/somshekhar/is-truthy-in-js-2clk텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)