Как настроить оператор if для изменения переменных

Я пытаюсь изменить переменную в javascript на значение по умолчанию, если нет доступного значения

// Parse the URL
function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
    results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

// Give the URL parameters variable names
var source = 'organic';
var medium = 'organic';
var campaign = 'organic';

// Give the URL parameters variable names
var source = getParameterByName('utm_source');
var medium = getParameterByName('utm_medium');
var campaign = getParameterByName('utm_campaign');

Я использую некоторый javascript для передачи переменной utm из URL-адреса через форму pardot. Я хочу установить значение по умолчанию для органического, а затем изменить переменную на ту, которая указана в URL-адресе, если она доступна.

в чем именно проблема?: Что пойдет не так? Сообщается ли об ошибках? Происходит ли что-нибудь?

Pointy 29.05.2019 22:19

Я не понимаю смысла первой строки внутри getParameterByName. Это регулярное выражение не соответствует ни одному из значений параметров, которые вы передаете в метод. Эта строка, кажется, не делает ничего полезного, или, может быть, я что-то упускаю.

user47589 29.05.2019 22:21

поэтому я беру переменную utm из строки URL-адреса, на самом деле я хочу сделать следующее. Я могу написать ее на php, но просто не знаю, как это сделать в javascript $source = "Organic"; если (isset(getParameterByName('utm_source')) { $source=getParameterByName('utm_source'); }

Brenig Cory 29.05.2019 22:25
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете передать значение по умолчанию в качестве параметра функции и вернуть его в своем условном операторе вместо "":

function getParameterByName(name, default) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
    results = regex.exec(location.search);
    return results === null ? default : decodeURIComponent(results[1].replace(/\+/g, " "));
}

// Give the URL parameters variable names
var source = 'organic';
var medium = 'organic';
var campaign = 'organic';

// Give the URL parameters variable names
var source = getParameterByName('utm_source', source);
var medium = getParameterByName('utm_medium', medium);
var campaign = getParameterByName('utm_campaign', campaign);

Другой вариант — использовать оператор || для применения значения по умолчанию в задании:

/ Give the URL parameters variable names
var source = 'organic';
var medium = 'organic';
var campaign = 'organic';

// Give the URL parameters variable names
var source = getParameterByName('utm_source') || source;
var medium = getParameterByName('utm_medium') || medium;
var campaign = getParameterByName('utm_campaign') || campaign;

Другие вопросы по теме