在JavaScript中,我正在构建像tic-tac-toe(但更复杂)的东西。任何给定的字段都可以有三个值:黑色,白色或无。您将用什么来表示这些值?考虑到你一次要经过大约300多个人。
我第一次想到'B','W'和'N'。然后我想到了0,1和2,现在我正在思考真,假和空。就JavaScript而言,哪个是更好的选择?快点?更惯用吗?
答案 0 :(得分:2)
它不会产生速度差异。
就个人而言,我会选择0,1,2。
一般来说,我会避免在undefined,null和false之间产生差异。这只会导致条件某处出现一些错误。在你的情况下,undefined似乎是一个非常糟糕的选择,因为该字段的内容不是未定义/未知,它被明确定义为空。
答案 1 :(得分:1)
正如Thilo所指出的那样,你想要避免使用多个值来使if(position)
评估position
为真。我可能会使用null
作为空值,因为它似乎对我更有意义。
对于其他价值观,我肯定会选择一些很难混淆的东西。字符串不是很好,因为你最终会使用B
而不是W
某处沿着这条线而出现恼人的错误,所以1
和2
可能是不错的选择。
另一种选择是,为了这个目的制作自己的“枚举” - 只需var black = new Object()
和var white = new Object()
并使用它们。通过这种方式,您所指的不仅仅是1
和2
。但是很多。