Здесь происходит пара вещей, но давайте сосредоточимся на основной проблеме;как вы объявили свои переменные.
Проще говоря, к переменным можно обращаться только в той области, в которой они объявлены (область действия - это весь код между {}
).
Я объясню это коротким примером на основе вашего кода.В ваших if
заявлениях вы объявляете свои переменные, то есть они могут использоваться в пределах этих if
операторов.Позже вы захотите использовать те же переменные вне оператора if
и в вашем коде.Поскольку эти переменные не существуют в этой области, они не определены.
...
// At this point there is no variable 'eFC' available.
if (serv.explicitContentFilter == 0) {
// Here you create the variable 'eFC' but it can only be used inside this scope, meaning it cannot be accessed outside the 'if' statement.
var eFC = "Don't Scan Any messages";
}
if (serv.explicitContentFilter == 1) {
// Here you create another variable with the same name, but it would end up being a different variable.
var eFC = "Scan for users without a role.";
}
// Here there is still no variable 'eFC' available to us.
...
Простое решение: объявите переменные в другой области и присвойте значения позже.Ниже вы можете увидеть пример:
...
// Here we create a new variable called 'eFC' which can be used within this scope
var eFC;
if (serv.explicitContentFilter == 0) {
// Here we assign a value to the previously defined variable
eFC = "Don't Scan Any messages";
}
if (serv.explicitContentFilter == 1) {
// Here we assign a value to the previously defined variable
eFC = "Scan for users without a role.";
}
// Here we can use the variable 'eFC' which will have a value
console.log(eFC);
...
Если вы сделаете это для всех переменных, которые вы используете, код должен работать нормально.
Наконец, я хочу оставить вас с некоторой дополнительной помощью,Я вижу, что вы создали много-много-много if
операторов для проверки, например, региона сервера или уровня проверки сервера.В Javascript (среди многих других языков программирования) есть идея под названием switch case
, которая в основном делает то же самое, что и вы со всеми этими if
утверждениями, но более аккуратным способом.Проверьте ссылку, я думаю, она поможет вам сделать ваш код более читабельным