如何遍历对象:
语法格式:
for (变量 in 对象){
}
ex:
var obj={
name:'小黑',
age:12,
sex:'男',
fn:function(){
}
}
for (var k in obj){
console.log(k); //这里k是变量输出得到的结果是属性名
console.log(obj[k]); //这里输出得到的结果为属性名所对应的值
}
效果:
接下来进入正题!
Math数学对象:
Math数学对象不是一个构造函数,所以我们不需要new来调用,而是直接使用里面的属性和方法即可
他具有数学常数和函数的属性和方法,跟数学相关的运算(求绝对值、取整、最大值等)
语法 | 作用 |
---|---|
Math.PI | 圆周率 |
Math.floor() | 向下取整 |
Math.ceil() | 向上取整 |
Math.round() | 四舍五入 就近取整 |
Math.abs() | 取绝对值 |
Math.max() | 求最大值 |
Math.min() | 求最小值 |
1、Math.floor()
console.log(Math.floor(1.4));
console.log(Math.floor(1.9));
他们两个的值都为1,是因为Math.floor() 是向下取整,不管你的小数位是多少直接一刀斩断,后面的就都不要了,所以这两个显示都为1
2、Math.ceil()
console.log(Math.ceil(1.4));
console.log(Math.ceil(1.9));
这个Math.ceil() ,跟上面的大不一样,上面的是怎么也不让你上去,这个呢是怎么也不让你下来,哪怕你是0.1也让你变成1,魔法的力量就是这么强大
3、Math.round()
console.log(Math.round(1.4));
console.log(Math.round(1.5));
console.log(Math.round(-1.5));
-1.5为什么就成了-1呢? 这里就要关注一下这个.5了,因为这个.5特殊,他会往大了取,因为-1和-2相比-1比-2大,所以这个.5就认-1做大哥了
生成一个随机数:Math.random()
这个方法里面是不跟参数的
console.log(Math.random());
他会随机生成一个0~1之间的数字,但是呢好像也没有地方可以用到,这个时候我们可以采用下面这个公式:
Math.floor(Math.random() * (max - min +1)) + min;
//我们可以用函数封装起来用的是或方便
function getRandom(min,max){
return Math.floor(Math.random()*(max-min+1))+min;
}
console.log(getRandom(1,10));
这样就可以自己输入一个最大值一个最小值来随机生成数了,这样是不是用处就很多了呢 (随机生成的数字包括最大值和最小值)
总和上面所学的我们来封装一个自己的数学对象,里面有PI的值、求最大值&最小值
var myMath={
PI:3.1415926,
max:function(){
var max=arguments[0];
for (var i=1;i<arguments.length;i++){
if (arguments[i]>max){
max=arguments[i];
}
}
return max;
},
min:function(){
var min=arguments[0];
for (var i=1;i<arguments.length;i++){
if (arguments[i]<min){
min=arguments[i];
}
}
return min;
}
}
console.log(myMath.max(1,2,5,6,4,8));
console.log(myMath.PI);
console.log(myMath.min(1,6,8,23,0,5,-1,-5,-6));
综上所学来做一个猜数字的交互界面
function getRandom(min,max){
return Math.floor(Math.random()*(max-min+1))+min;
}
var random=getRandom(1,10);
while (true){
var num =prompt('请输入一个1~10之间的数字');
if (num>random){
alert('猜大了');
}
else if (num<random){
alert('猜小了');
}
else{
alert('恭喜您猜对了');
break;
}
}