2013-10-17 2 views
5

는 내가 객체를 반환한다이 방법아무것도 찾지 못하면 검색 방법은 무엇을 반환해야합니까?

var link = this.find_first_link(selectedElem); 

있습니다. 요소가 발견되지 않으면 무엇을 반환해야하는지 모르겠습니다 - null, undefined 또는 false? 내가 여기에 어울리지 않을 것 같아서 '거짓'옵션을 거부했습니다. 그래서 나는 betwen null 또는 undefined를 선택합니다. 어떤 종류의 예외 나 오류가 발생하면 'undefined'를 사용해야하므로 현재이 메서드는 null을 반환합니다. 그 확인은?

답변

6

브라우저에서 사용하는 방법을 살펴보십시오.

getElementById은 제공된 ID가없는 요소가없는 경우 null을 반환합니다.

그게 바로 null은 다음과 같은 목적으로 설계된 것입니다 : 객체가 없다는 것을 나타 내기 위해 (typeof null"object"). 예상되는 반환 된 형식이 "object"이지만 반환 할 개체가 없을 때 사용하십시오. undefined보다 낫습니다. 변수에 무엇을 넣을 지 결정하기 전에 또는 함수를 호출하기 전에 undefined을 가지기 때문입니다. the description of null in the MDN에서

은 :

의 API에서, 널 (null)은 종종 객체가 예상 을 할 수있는 장소를 검색하지만 객체는 관련이 없습니다.

예, null을 사용하십시오.

+5

함수가 한 가지만 반환해야하지만 함수가 배열을 반환해야하는 경우 null을 반환하지 않는 경우 null을 반환합니다. 배열을 반환하는 함수의 경우 아무것도 발견되지 않으면 대신 빈 배열을 반환해야합니다. 그런 경우에 null이 반환되는 코드를 많이 보았고 for 루프 전에 항상 바보 인'! = null' 검사를합니다. – slebetman

+1

의심스러운 경우 기존 API를 살펴 보는 것이 좋습니다. – promanski

0

예,

VAR 링크 = this.find_first_link (selectedElem);

NULL을 반환합니다.

+2

OP는 결과가 없으면 그의 메소드'find_first_link'가 리턴해야하는 것을 묻습니다. 그것은 * 현재 * 돌아 오지 않습니다. – Marty

관련 문제