📀 在Java Script 中一共有三类对象,分别是 ‘自定义对象’,‘内置对象’,‘浏览器对象’,其中前两类属于JS基础中的内容,属于ECMA Script,而浏览器对象属于JS独有的一部分内容。在日常代码开发中有很多代码需要频繁使用,例如数学类,日期类,以及Array的一些方法等,对此便有了一些JS的自带对象,这些自带对象提供了很多可以直接使用的属性与方法,使得代码更为精炼。
JS中比较常见的内置对象为: Math,Date,Array,String ,这篇文章我们讲解 Math 对象
🎨 在开始之前我们先推荐一个非常常用的文档工具---- MDN文档,在代码开发中遇到不熟悉的内置对象方法,我们可以打开此文档来查阅,该文档网址为:
JavaScript | MDN
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript
🎨 Math 数学对象并不是一个构造函数,所以我们不需要 new 来创建,直接使用其属性和方法即可。
一:圆周率
Math.PIconsole.log(Math.PI)
二:最大最小值
Math.max(number1,number2,number3......)
Math.min(number1,number2,number3......)
注意:其中如果括号里没有参数,输出结果为 -Infinity,如果括号内参数有任何一个不能被转换的数值(例如字符串),则输出结果为NaN,但是如果出现了字符串型的数字,则可以通过隐式转换为数字型,不影响结果输出。
console.log(Math.max()); //结果为 -Infinityconsole.log(Math.max(2,3,5,7,4,9)); //结果为9console.log(Math.min(2,3,5,7,4,9)); //结果为2console.log(Math.min(2,3,5,7,'小明')); //结果为 NaNconsole.log(Math.min('2',3,5,7,4,9)); //结果为2,会将'2'隐式转换为数字型2
三:绝对值
Math.abs(number)
注意:如果括号内没有参数,输出结果为 NaN,如果括号内参数有任何一个不能被转换的数值(例如字符串),则输出结果为NaN,但是如果出现了字符串型的数字,则可以通过隐式转换为数字型,不影响结果输出。(同上)
console.log(Math.abs()); // 结果为 NaNconsole.log(Math.abs(-1)); //结果为1console.log(Math.abs(1)); //结果为1console.log(Math.abs('-1')); //结果为1,隐式转换同上console.log(Math.abs('小明')); //结果为 NaN
四:随机数(重要)
Math.random()
注意: 随机生成一个区间在[0,1)之间的浮点数
<script>console.log(Math.random()); console.log(Math.random()); console.log(Math.random()); console.log(Math.random()); console.log(Math.random()); console.log(Math.random()); </script>
五:得到两个数之间的随机整数(非常重要)
Math.floor(Math.random()*(max-min+1))+min
注意:可以得到两个数之间的随机整数,并且包含这两个整数,此处我们封装一个函数
<script>functionrandomnum(min,max){ returnMath.floor(Math.random()*(max-min+1))+min; } console.log(randomnum(1,100)); console.log(randomnum(1,100)); console.log(randomnum(1,100)); </script>
六:拓展案例1 随机点名游戏
🎨 利用上一版块的获取两个数之间的随机整数的方法,将数个名字放入一个数组内,根据获取到的随机数作为索引去获取数组内的名
<script>varname1=['卡卡西','宇智波带土','宇智波鼬','宇智波斑','宇智波佐助','鸣人']; functionrandom_num(min,max){ returnMath.floor(Math.random()*(max-min+1))+min; } varnum=random_num(0,name1.length-1) console.log(name1[num]); </script>
七:拓展案例2 猜数字小游戏
📀 1.死循环,不限制猜测次数
<script>functionrandom_num(min,max){ returnMath.floor(Math.random()*(max-min+1))+min; } vartrue_num=random_num(0,100); while(1){ varnum=prompt('请输入 0-100 范围内的一个整数'); if(true_num>num){ alert('您猜小了'); } elseif(true_num<num){ alert ('您猜大了'); } else{ alert('恭喜你!您猜对了!'); break; } } </script>
📀 2.限制猜测次数
写法有多种,你也可以使用 for 循环或别的
<script>functionrandom_num(min,max){ returnMath.floor(Math.random()*(max-min+1))+min; } vartrue_num=random_num(0,100); varflag=10; while(flag){ varnum=prompt('请输入 0-100 范围内的一个整数,您还剩下'+flag+'次机会'); flag--; if(true_num>num){ alert('您猜小了'); } elseif(true_num<num){ alert ('您猜大了'); } else{ alert('恭喜你!您猜对了!'); break; } } if(flag<=0){ alert('您的机会已耗尽'); } else{ alert('游戏结束,欢迎下次再来') } </script>