Javascript时间戳号不是唯一的

use*_*299 4 javascript timestamp

我需要生成一个唯一的数字,以便在我的代码中使用.我使用

var id = new Date().valueOf()
Run Code Online (Sandbox Code Playgroud)

我知道上面的返回毫秒数.但值不是唯一的.例如:1385035174752.此数字生成两次或更多次.

我的问题是为什么它不是唯一的?以及如何从当前日期/时间获得唯一编号?

Rob*_*b W 10

如果您需要唯一性,请使用Math.random(),而不是任何Date()API.

Math.random返回一个介于0和1之间的整数.如果你真的想要一个基于当前时间的半唯一数字,你可以将DateAPI与Math.random.例如:

var id = new Date().getTime() + Math.random();
Run Code Online (Sandbox Code Playgroud)

在现代浏览器中,您也可以使用performance.now().此API保证每个新调用的返回值都是唯一的.