我不会对这个故事感到厌烦,但是从本质上来说,我有一些晦涩难懂的JavaScript可以很好地处理所有问题,但是我在代码中遇到了两种我从未见过的模式。
下面的此功能包含两种模式。
var a = function() {
if (h = true,
T(),
DEVELOPMENT && "#y0" == window.location.hash)
return game.playRegion = "eu",
game.playRoom = "ffa1",
game.playInvited = true,
game.myOriginalName = window.location.hash.substr(1),
void Games.start(game.myOriginalName, true);
f || (I(),
Games.updateRegion(false),
Games.updateType(false),
C())
}
if
语句。我从未见过if
做赋值和调用函数,所以我不理解条件逻辑。我是否可以将语句移至if
上方,或者除非满足全部条件,否则语句是否不运行?我可以这样做吗?h = true;
T();
if (DEVELOPMENT && window.location.hash === "#y0"){}
return
怎么了?返回是一系列语句,那么实际上返回的是什么? void
的全部含义是什么?答案 0 :(得分:1)
几乎所有内容都是JavaScript中的表达式。
分配也只是表达式。 a = b
的值为b
。
逗号运算符(已被广泛使用)求值在逗号的右边,因此a, b, c
求值为c
。
void
采用任何表达式,并且始终取值为undefined
。
因此,此:
return a = b, void c();
if(d(), e) {}
等于:
a = b;
c();
return undefined;
d();
if(e) {}