如何在javascript代码中生成随机数?

如何在javascript代码中生成随机数?,javascript,Javascript,我正在使用一些第三方javascript在博客上的每个帖子中生成幻灯片。每个幻灯片必须具有唯一的ID才能正常工作。我认为最简单的方法是在页面上加载幻灯片时,为每个幻灯片生成一个大的随机数 下面是代码相关部分的一个片段,其中POSTID表示随机数。请注意,脚本下面的div中必须引用相同的随机数 <script language="javascript" type="text/javascript"> $(function() { $("#POSTID")

我正在使用一些第三方javascript在博客上的每个帖子中生成幻灯片。每个幻灯片必须具有唯一的ID才能正常工作。我认为最简单的方法是在页面上加载幻灯片时,为每个幻灯片生成一个大的随机数

下面是代码相关部分的一个片段,其中POSTID表示随机数。请注意,脚本下面的div中必须引用相同的随机数

<script language="javascript" type="text/javascript">
        $(function() {
        $("#POSTID").webwidget_slideshow_dot({
        slideshow_time_interval: '',
        slideshow_window_width: '320',
        slideshow_window_height: '480',
        slideshow_title_color: '#17CCCC',
        soldeshow_foreColor: '#000',
        });
        });
</script>

<div id="POSTID" class="webwidget_slideshow_dot">
        <!-- some content goes here -->
</div>
任何帮助都将不胜感激

感谢

生成范围为[0,1]的伪随机数

返回[0,1]范围内的浮点伪随机数,即从0(包括0)到1(不包括1)的范围,然后可以将其缩放到所需的范围

如果您想要一个大整数,在[0,999999]范围内,您可以进行缩放和舍入。例如

((Math.random() * 1e6) | 0)
将生成范围为[099999]的伪随机整数

要将伪随机ID附加到脚本,可以执行以下操作:

<!-- Generate a random ID -->
<script>
var postID = 'post-' + ((Math.random() * 1e6) | 0);
</script>

<!-- Create a DIV with a generic ID. -->
<div id="POSTID">...</div>

<!-- Replace the DIV's ID with the generated ID -->
<script>$("#POSTID").attr('id', postID);</script>

<!-- Use the generated ID in a script. -->
<script>
(function() {
    $("#" + postID).webwidget_slideshow_dot(...)
})()
</script>
请注意,JavaScript的Math.random不会生成。只要您将其用作网页中的GUID生成器,这就可以了,但如果您将ID发送到服务器,您就不应该依赖不知道它的人来确保安全。

生成范围为[0,1]的伪随机数

返回[0,1]范围内的浮点伪随机数,即从0(包括0)到1(不包括1)的范围,然后可以将其缩放到所需的范围

如果您想要一个大整数,在[0,999999]范围内,您可以进行缩放和舍入。例如

((Math.random() * 1e6) | 0)
将生成范围为[099999]的伪随机整数

要将伪随机ID附加到脚本,可以执行以下操作:

<!-- Generate a random ID -->
<script>
var postID = 'post-' + ((Math.random() * 1e6) | 0);
</script>

<!-- Create a DIV with a generic ID. -->
<div id="POSTID">...</div>

<!-- Replace the DIV's ID with the generated ID -->
<script>$("#POSTID").attr('id', postID);</script>

<!-- Use the generated ID in a script. -->
<script>
(function() {
    $("#" + postID).webwidget_slideshow_dot(...)
})()
</script>

请注意,JavaScript的Math.random不会生成。只要您将其用作网页中的GUID生成器,这就可以了,但如果您将ID发送到服务器,您就不应该依赖不知道它的人来确保安全。

简单的随机数有可能重复并破坏您的逻辑。您无法使用它创建真正的GUIDjavascript但使用了几个随机元素,使您的体系结构更加坚固。

一个简单的随机数有可能重复并破坏您的逻辑。您不能用javascript创建一个真正的GUID,但要使用几个随机元素,使您的体系结构更加坚固。

为什么要使用随机数?只需使用计数器var counter=0,并在每次需要新ID时向其添加1

$("#POSTID-" + counter++)

为什么要使用一个随机数呢?只要使用一个计数器var counter=0,每次需要一个新的ID时向它添加1即可

$("#POSTID-" + counter++)

随机数是一种方法,在其他答案中有很好的涵盖

我使用不同的方法来获取唯一值:Date对象的getTime属性返回自1970年1月1日以来的毫秒数,因此在每次页面刷新时都是唯一的:

<div class="webwidget_slideshow_dot">

随机数是一种方法,在其他答案中有很好的涵盖

我使用不同的方法来获取唯一值:Date对象的getTime属性返回自1970年1月1日以来的毫秒数,因此在每次页面刷新时都是唯一的:

<div class="webwidget_slideshow_dot">

为什么不使用Post ID?我试图找出如何包含tumblr{PostID},但无法找出如何让tumblr在javascript中正确识别它。如果可能的话,这将是首选方法。为什么不使用Post ID?我试图找出如何包含tumblr{PostID}但我无法弄清楚如何让tumblr在javascript中正确识别它。如果可能的话,这将是首选方法。为什么使用|而不是parseInt?谢谢,我不知道-但不包括1exclusive@tostzyd在Firefox上,在下面的微基准测试中,|性能提高了25%,可能是因为它没有函数调用和数字->字符串转换的开销。var t0=Date.now,t1;对于var i=0,n=31415926.54,x;i<1e6;++i,++n{x=n|0;}t1=Date.now;printt1-t0;var t0=Date.now,t1;对于var i=0,n=31415926.54,x;i<1e6;++i,++n{x=parseIntn;}t1=Date.now;printt1-t0;@Rifta,是的,如果你像我一样使用|向零取整或使用一个小因子,那么它比使用Math.round或另一个大因子的平衡取整方案重要得多。谢谢你的答案!不幸的是,POSTID div的id没有被POSTID随机数替换。你猜到了吗为什么不呢?请注意,我是以HTML模式在tumblr中构建的。为什么使用|而不是parseInt?谢谢,我不知道-但不包括1exclusive@tostzyd在Firefox上,在下面的微基准测试中,|的性能提高了25%,可能是因为它没有函数调用和数字->字符串转换的开销version.var t0=Date.now,t1;对于var i=0,n=31415926.54,x;i<1e6;++i,++n{x=n|0;}t1
=Date.now;打印T1-t0;var t0=日期。现在,t1;对于var i=0,n=31415926.54,x;i<1e6++i、 ++n{x=parseIntn;}t1=Date.now;打印T1-t0@Rifta,是的,如果你像我一样使用|向零取整或使用一个小因子,那么它比使用Math.round或另一个大因子的平衡取整方案更重要。谢谢你的答案!不幸的是,POSTID没有用POSTID随机数替换div的id。猜猜为什么不呢?请注意,我是以HTML模式在tumblr中构建的。