#javascript
#javascript
Вопрос:
Приведенная ниже функция в настоящее время выдает ошибку в консоли, поскольку переменная не определена, если к URL-адресу не добавлен запрос. Как я могу заставить ее ничего не делать в этом случае?
function getParamName(name, url) {
return url ?? location.href.split(`?${name}=`)[1];
}
Комментарии:
1. Вы можете проверить
location.href.split(`?${name}=`)
, возвращает ли она массив, а затем получить индекс 1
Ответ №1:
Используйте try-catch
блок для игнорирования ошибок
try {
Block of code to try
}
catch(err) {
Block of code to handle errors
}
Ответ №2:
Используется URLSearchParams
для анализа строки запроса и использования .get()
для предоставления вам значения, связанного с определенным. Это автоматически обработает случай, когда у вас есть несколько параметров строки запроса, и если вы попытаетесь получить тот, который не существует, он просто возвращает null
:
function getParamName(name, url) {
return url ?? new URLSearchParams(document.location.search.substring(1)).get(name);
}
console.log( getParamName("foo") );
Ответ №3:
вы можете просто выполнить нулевую проверку функции, если var пуст или нет. Поэтому просто проверьте, является ли имя пустым или нет, и запустите свой код, если он не пустой
Вот так:
function getParamName(name, url) {
if(name amp;amp; url){
return url ?? location.href.split(`?${name}=`)[1];
}
}