2013-01-24 2 views
3

Google Closure를 다룰 때 배웠던 점 중 하나는 원시 데이터 조작 및 관리 측면에서 라이브러리에 거의 모든 기능을 제공 할 수 있다는 것입니다. 나에게 달린 일은 그 위에 구성 요소를 만드는 것입니다.Google Closure Library : 부울을 구문 분석하는 "올바른"방법은 무엇입니까?

오늘 문자열에서 부울 값을 구문 분석하려고했습니다. 나는 이것을하기 위해 구글 폐쇄 라이브러리 (Google Closure Library)에서 아무것도 발견하지 못해서 놀랐다.

질문 : "How can I convert a string to boolean in JavaScript?"에 언급 된 기술을 사용하여 직접 제작했거나 찾을 수없는 부울을 구문 분석하는 다른 "Google Closure way"™가 있습니까?

+0

이것은 까다로운 도구이며 부울 ('false') == true 및 부울 ('0')도 고려해야합니다. 사용자 정의 방법은 규칙 세트를 기반으로하는 유일한 방법입니다. – lennel

답변

2

아니요, 그렇게 할 수있는 폐쇄 방법이 없습니다.

링크 된 질문에서 언급 한 조언을 따르거나 참인 것으로 간주되는 문자열과 잘못된 것으로 통합 한 고유 한 방법을 만듭니다.

1

내 생각에 라이브러리에는 이러한 기능이 포함되어 있지 않습니다. 정확하지 않은 것으로 예상되는 것이 항상 전형적인 것이 아니기 때문입니다 (대소 문자를 구분합니까?). 나는 아마도 goog.string.caseInsensitiveCompare (str, "true")와 goog.string.caseInsensitiveCompare (str, "false")를 사용할 것입니다. 이것은 뒤에서 마술이나 오류가없는 공간없이 찾고자하는 것을 정확하게 수행합니다.

흥미로운 점은 goog.string.caseInsensitiveCompare (true, "true")는 첫 번째 인수를 문자열로 강제 변환하므로 0 (동등 함)을 반환한다는 것입니다. 이것이 문제가되는 경우 goog.isString 또는 goog.isBoolean을 사용하여 미리 값을 필터링 할 수 있습니다.