Каждая функция контекста выполнения в javascript имеет контекст контекста этот параметр , который задается:
Каким бы ни был этот контекст области видимости, ссылается на «this».
Вы можете изменить это значение для параметра этого контекста области , используя func.call
, func.apply
или func.bind
.
По умолчанию и что сбивает с толку большинство новичков, когда вызывающий вызывающий вызов вызывается после того, как событие добавлено в элемент DOM, контекст области это значение функции является элементом DOM.
jQuery делает это тривиальным для изменения с помощью jQuery.proxy.
StringUtils.isEmpty (str)
или StringUtils.isNotEmpty (str)
StringUtils.isBlank (str)
или StringUtils.isNotBlank (str)
из Apache commons-lang .
Разница между пустым
и пустым
состоит в том, что строка, состоящая только из пробелов, является пустой
, но не пустой
.
Я обычно предпочитаю использовать apache-commons, если это возможно, вместо того, чтобы писать свои собственные служебные методы, хотя это также возможно для простых, подобных этим.
Нет, поэтому у многих других библиотек есть свои копии :)
Вы можете добавить один
public static boolean isNullOrBlank(String param) {
return param == null || param.trim().length() == 0;
}
У меня есть
public static boolean isSet(String param) {
// doesn't ignore spaces, but does save an object creation.
return param != null && param.length() != 0;
}
Для новых проектов я мы начали, чтобы каждый класс, который я пишу, расширял один и тот же базовый класс, в который я могу поместить все служебные методы, которые досадно отсутствуют в Java, как этот, эквивалент для коллекций (устал писать list! = null &&! list.isEmpty () ), нулевые безопасные равенства и т. д. Я все еще использую Apache Commons для реализации, но это позволяет сэкономить немного времени на вводе текста, и я не заметил каких-либо отрицательных эффектов.
public static boolean isNull(String str) {
return str == null ? true : false;
}
public static boolean isNullOrBlank(String param) {
if (isNull(param) || param.trim().length() == 0) {
return true;
}
return false;
}
Я видел этот метод написанным несколько раз в проектах, в которых я участвовал, но я должен сказать, что я никогда не писал его сам и не называл его... Вообще, я считаю, что null и empty - это совершенно разные состояния, и у меня нет причин их смешивать.