Javascript технически не имеет перечисления.Если вы не инициализируете переменную, она инициализируется как неопределенная.
То есть, следующие два утверждения абсолютно одинаковы:
let instagramlikes;
let instagramlikes = undefined
И в вашей функции вы по существупередать x
и undefined
.Затем он проверяет, является ли x === instagramlikes
, что переводится как undefined === undefined
, что будет true
.
Для того, чтобы смоделировать перечисление, вы можете попытаться установить переменные в какое-либо значение, например, так:
const instagramlikes = 'instagramlikes';
const sitetraffic = 'sitetraffic';
const dailytraffic = 'dailytraffic';
function clientwidgets(x) {
if (x === instagramlikes) {
return "This is A";
} else if (x === sitetraffic) {
return "This is B";
} else if (x === dailytraffic) {
return "This is C";
}
};
console.log(clientwidgets(instagramlikes));
console.log(clientwidgets(sitetraffic));
console.log(clientwidgets(dailytraffic));
Это не обязательно должна быть строка, вы можете использовать число или любой другой объект.Например, Symbol , если среда, на которую вы ориентируетесь, поддерживает его.
Каждый экземпляр Symbol уникален, поэтому сравнение с ===
должно работать безупречно.
const instagramlikes = Symbol();
const sitetraffic = Symbol();
const dailytraffic = Symbol();
function clientwidgets(x) {
if (x === instagramlikes) {
return "This is A";
} else if (x === sitetraffic) {
return "This is B";
} else if (x === dailytraffic) {
return "This is C";
}
};
console.log(clientwidgets(instagramlikes));
console.log(clientwidgets(sitetraffic));
console.log(clientwidgets(dailytraffic));