任何人都可以从下面的代码解释我得到的输出?
enum days {sun = 1,mon = 0,tues};
的console.log(天[1]); //返回tues //预期输出 – mon
的console.log(天[0]); //返回mon //预期输出 – sun
另外,请解释一下如何在这种情况下打印太阳?这种情况令我感到困惑.请求您在执行代码并观察输出后才能提供有效的解释.
最佳答案 这个打字稿:
enum days { sun = 1, mon = 0, tues };
compiles到这个javascript:
var days;
(function (days) {
days[days["sun"] = 1] = "sun";
days[days["mon"] = 0] = "mon";
days[days["tues"] = 1] = "tues";
})(days || (days = {}));
;
第一部分:天[天[太阳]] = 1] =“太阳”;
首先评估天[“太阳”] = 1,其中:
>确保您能够调用days.sun并获得值1
>返回键“sun”=>处设置的值这意味着最初的日期[1]将被设置为“太阳”.
第二部分:days [days [“mon”] = 0] =“mon”;
>确保您能够调用days.mon并获得值0
>返回键“mon”=>处设置的值0.所以days [0]将被设置为“mon”.
然而,第三部分:days [days [“tues”] = 1] =“tues”;
评估天[“tues”] = 1
>确保您能够调用days.tues并获得值1
>还返回键“tues”=>处设置的值1
这意味着此时[1]将被覆盖值“tues”