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