博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript内置对象--Math对象
阅读量:7112 次
发布时间:2019-06-28

本文共 1573 字,大约阅读时间需要 5 分钟。

在JavaScript开发中,除了简单加减乘除运算之外,有时候开发,特别是动画或者游戏开发中,需要使用复杂的数学运算。JavaScript中Math对象提供了一系列属性和方法,能够满足大多数场合的需要。

Math对象常用的属性是Math.PI,这个属性在很多角度计算上需要使用到。

Math对象方法

ceil()表示向上舍入,把数字向上舍入到最接近的整数。

floor()表示向下舍入,把数字向下舍入到最接近的一个整数。

round()表示通常的四舍五入方法舍入为最接近的整数

 

random()方法是Math对象一个非常常用的方法。返回一个0-1之间的随机数,但是不包括0和1。random()函数用途最多的是返回一个指定范围内的随机数,但是本身random()返回的值是0-1之间的数值,但是不包括0和1,所以我们需要改造一下这个函数,使得可以返回可以指定范围内的随机数。

<script type="text/javascript"> document.write("Using the Math.random() method!<br/>"); document.write(Math.random()); document.write(Math.floor(Math.random()*100+1));//1-100之间的随机整数,包括1 //使用random()和floor()方法获得某个范围内的随机数 var number=Math.floor(Math.random()*total_number_of_choices+first_possible_value); </script>

在有的应用场合,我们防止一个请求会被CDN或者代理服务器缓存相关的数据值,我们需要在请求的后面加上一个时间戳。当然也可以用后台代码生成一个GUID来做。可以采用Math对象的方法和Date对象的方法实现。

<script type="text/javascript"> function getDataWithoutCache(URL){ var _url= URL if (!_url)return; //Clear the cache using the timestamp var timestamp = new Date(); var queryString = ""+Math.ceil(Math.random() * 9999) + timestamp.getUTCHours() + timestamp.getUTCMinutes() + timestamp.getUTCSeconds(); _url= _url+ queryString; </script>

在拼接字符串前面之所以加上双引号,是因为在JavaScript默认情况下,2个数字相加,是直接使用算术里面的加法进行的,而不是字符串拼接。如下代码输出结果是多少?

var a=10; var b=5; var result1=a+b; document.write(result1);

然后再看如下代码输出结果是多少?

var result2=" "+a+b; document.write(result2);

然后再看如下代码输出结果是多少?通过这2段代码,提醒我们平时在JavaScript开发中需要“+”操作符的使用,如果使用不当,虽然不会报错,但是后面很多代码逻辑是有问题。"+"操作符在遇到表达式中有字符串的情况下,将进行字符串拼接,返回的是一个字符串。我们可以通过Math对象的方法完成一个随机抽奖的小程序。

 

转载于:https://www.cnblogs.com/liminjun88/archive/2012/08/08/2628344.html

你可能感兴趣的文章
ASP.NET Core实现OAuth2.0的AuthorizationCode模式
查看>>
Atitit tomcat在linux服务器的启动与其他
查看>>
C++/Php/Python 语言执行shell命令
查看>>
Oracle表空间维护总结
查看>>
12C -- ORA-01017
查看>>
约瑟夫环问题
查看>>
Compile、Make和Build的区别(as make, build, clean, run)
查看>>
介绍三款串口监控工具:Device Monitoring Studio,portmon,Comspy
查看>>
Bulk Load-HBase数据导入最佳实践
查看>>
sqlServer的主键只能自增不能手动增加
查看>>
maven常用命令介绍
查看>>
【树莓派】树莓派上刷android系统
查看>>
J2EE之Servlet初见
查看>>
elasticsearch best_fields most_fields cross_fields从内在实现看区别——本质就是前两者是以field为中心,后者是词条为中心...
查看>>
JPA(一):简介
查看>>
git 的安装和使用
查看>>
(转) OpenCV学习笔记大集锦 与 图像视觉博客资源2之MIT斯坦福CMU
查看>>
Controller 接口控制器详解
查看>>
【转】【MySQL】mysql 通过bin-log恢复数据方法详解
查看>>
linux上安装启动elasticsearch-5.5.1完整步骤
查看>>