Нужно ли проверять наличие нуля и длины или есть более короткий способ проверки непустой строки? - PullRequest
6 голосов
/ 23 ноября 2010

Я устанавливаю значение скрытого поля #thimble при загрузке страницы, используя значения на стороне сервера.

Тогда в JavaScript я хочу воздействовать на это значение, только если оно заполнено каким-то непустымstring.

Является ли это наиболее кратким способом проверки того, что значение не пустое?

if ($("#thimble").val() != null && $("#thimble").val().length > 0) {
    carryOn();
}

Кажется довольно длинным.

Ответы [ 3 ]

12 голосов
/ 23 ноября 2010

Пустая строка имеет значение falsey , я бы даже не стал проверять ее length.

Следующее эквивалентно вашему примеру:

if ($("#thimble").val()) {
    carryOn();
}

A falsey value - это значение, которое выдает false при оценке в логическом контексте (например, условие оператора if).

Значения Falsey:

  • null
  • undefined
  • NaN
  • 0
  • "" (пустая строка)
  • false

Помните, что строка в контексте Boolean создает false только тогда, когда ее длина равна 0, если она имеет пробел, она все еще производит true:

Boolean("");     // false
Boolean("    "); // true, whitespace
3 голосов
/ 23 ноября 2010

Если под непустым значением вы подразумеваете что-либо кроме нулевой длины или только пробелы , тогда используйте $.trim с .length:

if ($.trim($("#thimble").val()).length) {
   ...
}
0 голосов
/ 23 ноября 2010
if ($("#thimble").val().length) {
    carryOn();
}
...