При построении плагина jQuery, который должен быть передан логическим значением, самый fool-proof способ преобразования ввода в логическое значение по-дружески?Какой самый надежный способ передать логическое значение в плагин jQuery?
Чтобы быть более точным: я боюсь случая, чтобы люди могли бы передать строку из 'false'
(вместо простого false
) и, следовательно, простое преобразование !!option
или Boolean(option)
вернет «неправильный» значение (!!'false'
является true
).
На данный момент я проверяю var option
так:
if (typeof(option) != 'boolean'){
if (option === 'false'){
option = false; //fake false
} else {
option = !!option; //everything else is converted as truthy/falsy in a standard manner
}
}
, но мне было интересно, если есть более элегантный и лаконичный способ сделать это, или это просто так, что JavaScript обрабатывает это?
«Обычная ошибка, которую люди делают при попытке создать что-то совершенно безупречное, - это недооценить изобретательность полных дураков». -Douglas Adams – j08691
@ j08691 Хорошо, что я сам дурак, поэтому готовлюсь к множеству изобретательности: P Кроме этого замените «дураки» на «удобные для пользователя» – m90
Не пытайтесь «исправить», такие вещи. Проектирование API для обуздания некомпетентных программистов - это, как правило, ужасная идея. – Pointy