你会为“javascript enum”选择哪三个值?

时间:2013-03-13 22:56:57

标签: javascript optimization

在JavaScript中,我正在构建像tic-tac-toe(但更复杂)的东西。任何给定的字段都可以有三个值:黑色,白色或无。您将用什么来表示这些值?考虑到你一次要经过大约300多个人。

我第一次想到'B','W'和'N'。然后我想到了0,1和2,现在我正在思考真,假和空。就JavaScript而言,哪个是更好的选择?快点?更惯用吗?

2 个答案:

答案 0 :(得分:2)

它不会产生速度差异。

就个人而言,我会选择0,1,2。

一般来说,我会避免在undefined,null和false之间产生差异。这只会导致条件某处出现一些错误。在你的情况下,undefined似乎是一个非常糟糕的选择,因为该字段的内容不是未定义/未知,它被明确定义为空。

答案 1 :(得分:1)

正如Thilo所指出的那样,你想要避免使用多个值来使if(position)评估position为真。我可能会使用null作为空值,因为它似乎对我更有意义。

对于其他价值观,我肯定会选择一些很难混淆的东西。字符串不是很好,因为你最终会使用B而不是W 某处沿着这条线而出现恼人的错误,所以12可能是不错的选择。

另一种选择是,为了这个目的制作自己的“枚举” - 只需var black = new Object()var white = new Object()并使用它们。通过这种方式,您所指的不仅仅是12。但是很多。