JS에서는 사용자 정의 속성이있는 부울을 반환 할 수 있습니다. 예 : Modernizr은 비디오 지원을 테스트 할 때 반환 true
하거나 false
반환 된 부울 (Bool은 JS의 첫 번째 클래스 개체)에 지원되는 형식을 지정하는 속성이 있습니다. 처음에는 조금 놀랐지 만 아이디어가 마음에 들기 시작했고 왜 그것이 조금만 사용되는 것 같습니까?
기본적으로 무언가가 참인지 거짓인지 알고 싶은 모든 시나리오를 다루는 우아한 방법처럼 보이지만 사용자 정의 반환 객체를 정의하거나 콜백 함수를 사용하지 않고 정의 할 수있는 추가 정보에 관심이있을 수 있습니다 더 많은 매개 변수를 승인하십시오. 이렇게하면 더 복잡한 데이터를 반환하기위한 용량을 손상시키지 않으면 서 매우 보편적 인 함수 서명을 유지할 수 있습니다.
내가 상상할 수있는 세 가지 주장이 있습니다.
- 인터페이스가 명확하고 까다 롭지 않은 것이 더 좋을 때 좀 드물거나 예기치 않은 일입니다.
- 이것은 짚맨 논쟁 일지 모르지만 약간의 사례가 있기 때문에 일부 JS 최적화 프로그램, uglifier, VM에서 또는 사소한 정리 언어 사양 변경 후 조용히 역화되는 것을 상상할 수 있습니다.
- 간결하고 명확하며 일반적인 방식으로 정확하게 동일한 작업을 수행하는 것이 좋습니다.
그래서 내 질문은 추가 속성으로 부울을 사용하지 않는 강력한 이유가 있습니까? 트릭이나 간식입니까?
플롯 트위스트 경고.
위는 완전한 영광의 원래 질문입니다. Matthew Crumley와 senevoldsen이 지적한 바와 같이 그것은 거짓 (거짓?) 전제에 기초합니다. 훌륭한 JS 전통에서 Modernizr 이하는 일은 언어 트릭이며 더러운 것입니다. 기본 bool이있는 JS로 정리합니다. 거짓으로 설정하면 소품을 추가하려고 시도한 후에도 거짓으로 유지됩니다 (자동 실패). 맞춤형 소품을 가질 수 있지만 객체 인 것은 항상 진실입니다. Modernizr은 부울 거짓 또는 진실한 부울 객체를 반환합니다.
내 원래의 질문은 트릭이 다르게 작동한다고 가정했기 때문에 대부분의 인기있는 답변은 (완벽하게 유효한) 코딩 표준 측면을 처리합니다. 그러나 나는 가장 유용한 전체 트릭을 해제하는 답변 (및 방법을 사용하는 것에 대한 궁극적 인 주장)을 발견하여 그중 하나를 받아들입니다. 모든 참가자들에게 감사합니다!
null
지원되지 않으면 방금 반환 할 수 있으며 형식은 배열로 반환 될 수 있습니다 . 목록은 JS에서 진실한 것으로 간주되며 null
허위입니다.