Строку.IsNullOrEmpty в JavaScript


Я знаю, что это не одобряется, чтобы сделать что-то вроде написать на C# в JavaScript. (см. Это если вы не знаете, что я говорю о)

Но как принимать решения, я думаю, мы могли бы иметь относительно простую проверку для значений, которые являются нулем или пустой, вот я и ищу отзывы на эту реализацию строки.isNullOrEmpty.

String.isNullOrEmpty = function (value) {
    return (!value || value == undefined || value == "" || value.length == 0);
}


120382
32
задан 25 октября 2011 в 03:10 Источник Поделиться
Комментарии
3 ответа

Начиная с:

return (!value || value == undefined || value == "" || value.length == 0);

Глядя на последнее условие, если value == "", его длина должна быть 0. Поэтому брось это:

return (!value || value == undefined || value == "");

Но подождите! В JS, пустая строка является ложным. Таким образом, падение стоимости == "":

return (!value || value == undefined);

И !определено верно, так что регистрация не требуется. Итак, мы имеем:

return (!value);

И мы не нуждаемся в скобках:

return !value

В. Д. Е.

66
ответ дан 31 октября 2011 в 02:10 Источник Поделиться

Есть всего несколько изменений, которые я сделал бы.

Во-первых, всегда использовать === вместо == в JavaScript. Вы можете прочитать больше об этом на переполнение стека.

Во-вторых, поскольку неопределенным является изменяемым, я рекомендовал бы использовать

typeof value === "undefined"

вместо

value === undefined

В-третьих, я бы снять !значение и значение === "" условия. Они являются избыточными.

Моя Редакция

Я бы использовал немного другой подход, чем вы:

String.isNullOrEmpty = function(value) {
return !(typeof value === "string" && value.length > 0);
}

Это проверяет, если тип значения "строка" (и, следовательно, ненулевое и не определено), и если он не пустой. Если это так, то не является нулем или пустой.

Обратите внимание, что это возвращает значение true для нестроковых входы, которые не могут быть то, что вы хотите, если вы хотели, чтобы бросить ошибка, неожиданный ввод тип.

11
ответ дан 26 октября 2011 в 04:10 Источник Поделиться

Вы должны использовать объект.прототип.isNullOrEmpty = функция() { оповещения(это) }. Это связывает ее с объекта String во всех случаях. Это будет начать, чтобы дать вам доступ к использованию строк и переменных, как "".isNullOrEmpty или ВАР х = нуль; х.isNullOrEmpty();

Если ваше намерение состоит в том, чтобы использовать его в качестве функции для передачи в переменных: строка.isNullOrEmpty();

3
ответ дан 28 октября 2011 в 03:10 Источник Поделиться