2 回答

TA貢獻1821條經(jīng)驗 獲得超5個贊
從技術(shù)上講, JavaScript沒有枚舉。如果不初始化變量,則將其初始化為未定義。
也就是說,以下兩個語句完全相同:
let instagramlikes;
let instagramlikes = undefined
并且在您的函數(shù)中,您基本上傳入x和undefined。如果這則檢查x === instagramlikes其翻譯為undefined === undefined,這將是true。
為了模擬枚舉,您可以嘗試將變量設(shè)置為某個值,如下所示:
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));
雖然它不一定是字符串,但是您可以使用數(shù)字或任何對象。如果您要定位的環(huán)境支持,則可以使用符號(例如Symbol)。
Symbol的每個實例都是唯一的,因此與之進行的比較===應(yīng)該完美無缺。
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));

TA貢獻1890條經(jīng)驗 獲得超9個贊
嘗試為每個不同的選項分配一個唯一的值。
let instagramlikes = 1;
let sitetraffic = 2;
let dailytraffic = 3;
function clientwidgets(x){
if (x === instagramlikes){
console.log("This is A");
} else if (x === sitetraffic){
console.log("This is B");
} else if (x === dailytraffic){
console.log("This is C")
}
}
clientwidgets(instagramlikes);
clientwidgets(sitetraffic);
clientwidgets(dailytraffic);
我將創(chuàng)建一個對象枚舉來也包含所有類型:
const TYPE = {
INSTAGRAM_LIKES:1,
SITE_TRAFFIC:2,
DAILY_TRAFFIC:3
}
然后像這樣打電話
clientwidgets(TYPE.INSTAGRAM_LIKES);
添加回答
舉報