Как проверить что переменная не пустая js
Как проверить объект на пустоту в JavaScript
Проверка объектов на пустоту в JavaScript в новых браузерах
Для чего необходима дополнительная проверка конструктора? В JavaScript имеется девять встроенных конструкторов.
Никогда не следует создавать объект с помощью конструктора. Это считается плохой практикой.
Решение проблемы ложных срабатываний
Это можно легко исправить, добавив проверку конструктора.
Отлично! Теперь мы получили верный ответ.
Как проверить объект на пустоту в JavaScript при других значениях
Давайте протестируем этот метод с некоторыми другими значениями.
Но с таким подходом следует быть осторожным! Такие значения вызовут ошибку.
Проверка объекта на null и undefined
Чтобы избежать ошибки TypeError можно применить дополнительную проверку.
В этом случае никаких ошибок возникать не будет.
Как проверить объект на пустоту в JavaScript для старых версий браузеров
Для поддержки старых браузеров и Internet Explorer существует два варианта на выбор: использовать нативный js или библиотеки. Простой «ванильный» способ выглядит не очень лаконичным, но работает хорошо.
Он возвращает true для объектов.
И объектам-конструкторам его тоже не обмануть.
Использование сторонних библиотек
Lodash
Underscore
jQuery
Чистый JavaScript или библиотеки
Что именно выбрать, зависит от обстоятельств. Я отдаю предпочтение «ванильному» js и стараюсь использовать его всегда. Подключение внешних библиотек не всегда оправдано и негативно сказывается на скорости загрузки сайтов и их работе. Да и изучать документацию и настраивать библиотеку для таких мелочей особого смысла тоже нет. Но если разрабатываемое приложении уже предполагает использование сторонних библиотек, то почему бы не задействовать их. В любом случае окончательный выбор того, как в JavaScript проверить объект на пустоту зависит от личных предпочтений каждого и конкретной задачи.
Есть ли стандартная функция для проверки нулевых, неопределенных или пустых переменных в JavaScript?
30 ответов
Вы можете просто проверить, имеет ли переменная значение truthy или нет. Это значит
Приведенный выше список представляет все возможные значения falsy в ECMA- / Javascript. Найдите его в спецификации в ToBoolean раздел.
Если переменная не была объявлена, вы не сможете проверить неопределенность с помощью функции, потому что получите ошибку.
Оба сгенерируют ошибку, если foo не был объявлен.
Если вы хотите проверить, была ли объявлена переменная, вы можете использовать
Если вы хотите проверить, объявлен ли foo и имеет ли оно значение, которое вы можете использовать
Это охватывает пустой массив и пустой объект также
Если вы хотите избежать получения значения true, если значением является любое из следующих, в соответствии с ответом jAndy:
Одним из возможных решений, которое могло бы избежать получения истинных значений, является следующее:
Он будет использоваться следующим образом:
В дополнение к этим сценариям вы можете захотеть вернуть значение false, если объект или массив пуст:
Вы бы пошли об этом так:
Если вы хотите проверить все строки пробелов («»), вы можете сделать следующее:
Примечание: hasOwnProperty возвращает true для пустых строк, 0, false, NaN, null и undefined, если переменная была объявлена как любая из них, поэтому ее использование может быть не лучшим. Функция может быть изменена, чтобы использовать ее, чтобы показать, что она была объявлена, но ее нельзя использовать.
Подробный метод, чтобы проверить, является ли значение неопределенным или нулевым:
Это вернет истину для
Чтобы запретить последнюю категорию, вы можете просто проверить наличие пустых строк
Опять же, приведенный выше код эквивалентен следующему.
Вы можете напрямую использовать оператор равенства
В ES6 с отделкой для обработки пробельных строк:
Вы немного переусердствовали. Чтобы проверить, что переменной не присвоено значение, вам нужно будет проверить только undefined и null.
Я думаю, что использование try catch позволит избежать любой ошибки проверки нуля, в том числе в Angular или JavaScript. Просто перехватывает нулевое исключение и обрабатывает его.
Если вы предпочитаете простой javascript, попробуйте это:
В противном случае, если вы уже используете подчеркивание или lodash, попробуйте:
Таким образом, вам действительно не нужно проверять потенциальную проблему заранее, вы просто ловите ее, а затем решаете, как хотите.
Это проверит, является ли переменная неопределенного вложения неопределенной
Выше проверяет, существует ли функция Google Translate для TranslateElement. Это эквивалентно:
Вам может пригодиться следующая функция:
Или в ES7 (прокомментируйте, если дальнейшие улучшения)
Как проверить пустую строку /undefined/null в JavaScript?
ОТВЕТЫ
Ответ 1
Если вы просто хотите проверить, есть ли какая-либо ценность, вы можете сделать
Ответ 2
Чтобы проверить, является ли строка пустой, null или undefined, я использую:
Для проверки пустой строки, null или undefined я использую:
Для проверки, является ли строка пустой или содержит только пробел:
Ответ 3
или литье типа использования:
Ответ 4
Ответ 5
Самое близкое, что вы можете получить в str.Empty (с предварительным условием, что str является String):
Ответ 6
Ответ 7
Ответ 8
Ничего не представляет пустую строку в JavaScript. Сделайте проверку против length (если вы знаете, что var всегда будет строкой) или против «»
Ответ 9
ps В Javascript не используйте перевод строки после return ;
Ответ 10
Вы можете использовать lodash: _.isEmpty (значение).
Ответ 11
РЕДАКТИРОВАТЬ: за комментарий от Constantin, если strVar может каким-то образом положить конец целочисленному значению 0, то это действительно будет одним из тех, ситуации.
Ответ 12
вы также можете использовать регулярные выражения:
Проверяет строки, которые либо пусты, либо заполнены пробелами.
Ответ 13
отредактируйте false spaces в значении, затем проверьте emptiness
Ответ 14
Много ответов и много разных возможностей!
Без сомнения, для быстрой и простой реализации победитель: if (!str.length)
Однако, как и многие другие примеры. Лучший функциональный метод для этого, я бы предложил:
Ответ 15
Кроме того, если вы считаете заполненную пробел строку «пустой». Вы можете проверить его с помощью этого регулярного выражения:
Ответ 16
Я обычно использую что-то вроде этого,
Ответ 17
Я не заметил ответа, который учитывает возможность пустых символов в строке. Например, если у нас есть строка с нулевым символом:
Чтобы проверить его нулевость, можно сделать что-то вроде этого:
Он работает с пустой строкой и на пустой строке и доступен для всех строк. Кроме того, он может быть расширен, чтобы содержать другие пробелы JavaScript или пробельные символы (т.е. Неиспользуемое пространство, отметку байтового байта, разделитель строк/абзацев и т.д.).
Ответ 18
Все эти ответы хороши.
Но я не могу быть уверен, что переменная является строкой, не содержит только пробелов (это важно для меня) и может содержать ‘0’ (string).
Ответ 19
Если нужно обнаружить не только пустые, но и пустые строки, я добавлю в ответ Goral:
Ответ 20
Между тем у нас может быть одна функция, которая проверяет все «пустые», как null, undefined, », », <>, []. Поэтому я просто написал это.
Используйте случаи и результаты.
Ответ 21
Я обычно использую что-то вроде:
Ответ 22
Я использую комбинацию, сначала выполняются самые быстрые проверки.
Ответ 23
Игнорируя строки с пробелами, вы можете использовать это для проверки нулевого, пустого и undefined:
Кратко, и он работает для свойств undefined, хотя это не самый читаемый.
Ответ 24
Я провел некоторое исследование, что произойдет, если вы передадите функцию нестрочного и непустого/нулевого значения в функцию тестера. Как известно многим, (0 == «») истинно в javascript, но поскольку 0 является значением, а не пустым или нулевым, вы можете проверить его.
Следующие две функции возвращают true только для значений undefined, null, empty/whitespace и false для всего остального, таких как числа, логические, объекты, выражения и т.д.
Существуют более сложные примеры, но они просты и дают согласованные результаты. Нет необходимости тестировать undefined, поскольку он включен в (value == null). Вы также можете имитировать поведение С#, добавив их в String следующим образом:
Вы не хотите помещать его в прототип Strings, потому что если экземпляр String-класса имеет значение null, он будет ошибочным:
Я тестировал следующий массив значений. Вы можете запрограммировать его, чтобы проверить свои функции, если у вас есть сомнения.
Ответ 25
чтобы проверить, является ли в точности пустой строкой:
чтобы проверить, является ли она пустой строкой ИЛИ логическим эквивалентом для no-value (null, undefined, 0, NaN, false. ):
Ответ 26
Ответ 27
Вы можете легко добавить его к собственному объекту String в JavaScript и использовать его снова и снова.
Что-то простое, например, приведенный ниже, может помочь вам, если вы хотите проверить » пустые строки:
и вы можете назвать это так:
Ответ 28
Ответ 29
Ответ 30
Не считайте, что переменная, которую вы проверяете, является строкой. Не предполагайте, что если этот var имеет длину, то это строка.
Дело в том, что внимательно подумайте о том, что ваше приложение должно делать и может принять. Создайте что-нибудь надежное.
Если ваш метод/функция должен обрабатывать непустую строку, тогда проверьте, является ли аргумент пустой строкой, и не выполняйте «трюк».
В качестве примера чего-то, что взорвется, если вы будете следовать некоторым советам здесь не осторожно.
Существует ли стандартная функция для проверки нулевого, undefined или пустых переменных в JavaScript?
ОТВЕТЫ
Ответ 1
Вы можете просто проверить, имеет ли переменная значение truthy или нет. Это значит
Ответ 2
Подробный метод проверки того, является ли значение неопределенным или null:
Вы также можете использовать оператор == но это позволяет узнать все правила:
Ответ 3
Это вернет true для
Чтобы запретить последнюю категорию, вы можете просто проверить пустые строки
Ответ 4
Это самая безопасная проверка, и я не видел, чтобы она была опубликована здесь в точности так:
Он будет охватывать случаи, когда значение никогда не определялось, а также любой из них:
PS нет необходимости строгого равенства в значении typeof! = ‘Undefined’
Ответ 5
Вы можете найти следующую полезную функцию:
Или в ES7 (прокомментируйте, если последующие улучшения)
Ответ 6
Первый ответ с лучшим рейтингом неверен. Если значение undefined, это вызовет исключение в современных браузерах. Вы должны использовать:
Ответ 7
эта функция вернет true, если val пуст, null, undefined, false, число 0 или NaN.
ИЛИ ЖЕ
Ответ 8
Вы немного переусердствовали. Чтобы проверить, не указана ли переменной значение, вам нужно будет проверить только undefined и null.
Ответ 9
Это условие проверки
— это все, что вам нужно.
Ответ 10
Если вы предпочитаете простой javascript, попробуйте это:
В противном случае, если вы уже используете подчеркивание или lodash, попробуйте:
Ответ 11
Ответ 12
Решение, которое мне очень нравится:
Ответ 13
Если переменная не была объявлена, вы не сможете проверить для undefined функцию, потому что вы получите сообщение об ошибке.
Оба будут генерировать ошибку, если foo не был объявлен.
Если вы хотите проверить, была ли указана переменная, вы можете использовать
если вы хотите проверить, объявлено ли foo и имеет значение, которое вы можете использовать
Ответ 14
Ответ 15
Чтобы проверить значение по умолчанию
Я использовал функцию @Vix(), чтобы проверить объект этого типа.
Ответ 16
это действительно хороший и чистый способ справиться с этим во многих местах, также может использоваться для назначения переменных
Ответ 17
вы можете использовать:
Если условие, чтобы проверить, не является ли строка или значение пустой. например:
Ответ 18
Это может быть полезно.
Все значения в массиве представляют собой то, что вы хотите (ноль, неопределенное или другое), и вы ищете в нем то, что хотите.
Ответ 19
В ES6 с отделкой для обработки строк с пробелами:
Ответ 20
Вы можете использовать следующий код для проверки всех четырех (4) условий для проверки, таких как не null, не пустые, не неопределенные и не ноль, только используйте этот код (! (! (Variable))) в javascript и jquery.
Ответ 21
Если вы используете TypeScript и не хотите учитывать «значения, которые являются false «, то это решение для вас:
Ответ 22
но это решение чрезмерно спроектировано, если вы не хотите изменять функцию позже для потребностей модели на машинах, тогда чище использовать ее непосредственно в коде:
Ответ 23
Это никогда не вызовет ошибку. Если myObject, child или myValue равно null, myNewValue будет null. Ошибок не будет.
Ответ 24
Для всех, кто приехал сюда за аналогичным вопросом, следующие работы великолепны, и у меня есть это в моей библиотеке последние годы:
Ответ 25
Это проверит, является ли переменная неопределенной вложенности undefined
Вышеописанная проверка, существует ли функция перевода Google TranslateElement. Это эквивалентно:
Ответ 26
вырожденность
Truthiness/Falsiness
Нулевой и неопределенный
Ответ 27
Я думаю, используя? оператор немного чист.
Ответ 28
Хотя старое, что забыли, что они должны обернуть свой блок кода, а затем поймать ошибку, а затем проверить.
Поэтому вам действительно не нужно проверять потенциальную проблему перед рукой, вы просто ее поймаете, а затем справляетесь с ней, как хотите.
Ответ 29
Я думаю, что использование try catch позволит избежать ошибки null check, также в Angular или JavaScript. Просто улавливает нулевое исключение и обрабатывает его.
Ответ 30
Вместо того, чтобы использовать
Вы можете использовать ниже простой код
Методы объектов js: Как проверить объект Javascript на пустоту?
Проверить является ли объект пустым – одна из постоянно встречающихся задач в повседневной жизни Javascript разработчика.
Например, работая над очередной фичей в React приложении, требовалось делать активной кнопку “Подтвердить” только в том случае, когда объект const order = <> содержал свойства, то есть не был пустым.
В случае если бы переменная order содержала массив, то все было бы просто:
Рассмотрим 4 метода объектов js, которые помогут проверить объект на пустоту.
1. Object.keys()
Тоже самое можно записать так:
Далее прописываем переменную для свойства disabled нашей кнопки (делаем ее неактивной):
2. JSON.stringify()
Добавляем наше условие:
3. Цикл for..in
Данный способ интересен тем, что его поддерживают более старые версии браузеров. Ознакомиться с текущим состоянием браузерной совместимости цикла for..in можно здесь ).
4. isEmpty (метод в библиотеке Lodash)
В библиотеке Lodash есть специальный метод, который принимает на вход как массивы так и объекты:
Массив: перебирающие методы 2020 (11 примеров)
Javascript var, let и const (в чем отличие и когда использовать)?