Заставить функцию ничего не делать, если переменная не определена

#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
} 
 

https://www.w3schools.com/js/js_errors.asp

Ответ №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];
  }
}