TIL []===[], undefined===undefined

skj1211·2022년 5월 14일
0

2022.05.15
게시판 프로젝트 작업중 만난 이슈

[]===[] 는 false
다음 코드는 오류는 없지만 원하는 결과가 나오지 않는다
검색을 하지않으면 searchWritings 는 초기값이 [] 이기 때문에
[]===[] 가 당연히 true를 반환할 줄 알았다.
자바스크립트는 타입이 명확히 명시되지 않기 때문에 연산 과정중 강제 형변환에 의해 false를 반환한다.
[]===[]이 true가 되려면 안의 요소들 하나하나 전부 같아야한다.
https://bugtypekr.tistory.com/53
https://stackoverflow.com/questions/40313263/why-is-in-javascript

const [searchWritings, setSearchWritings] = useState([]);

return searchWritings === []
		? board.map((el) => (
				<div className="story">	
				</div>
		  ))
		: searchWritings.map((el) => (
				<div className="story">	
				</div>
		  ));

위 문제를 해결 하기위해 아래 코드로 변경
undefined===undefined 는 true가 확실

const [searchWritings, setSearchWritings] = useState();

return searchWritings === undefined
		? board.map((el) => (
				<div className="story">	
				</div>
		  ))
		: searchWritings.map((el) => (
				<div className="story">	
				</div>
		  ));

0개의 댓글