JavaScript常⽤内置对象——Math对象(总结概括)以及延时调⽤与循环调⽤的介绍概括

JavaScript常⽤内置对象

之前在讲⾯ ⾯向对象的时候都是我们⾃⼰去创建对象 ,其实在 JavaScript 的内部有很多内置对象, 系统提供的内置对象 是可以直接使⽤的,这些对象我们叫JS 常⽤对象

Math对象

它是⼀个全局的数学对象,是⼀个系统已经定义好的对象,不需要我们通过 new 的关键来构造就可以直接使⽤,它主要⽤于我们的数据运算
这个数学对象⾥⾯主要包含了 2 个东⻄,⼀个是属性【常数】,⼀个是⽅法

常数

常数数学或⾃然界当中⼀些固定的数,如 π 它就是⼀个常数
Math.PI 圆周率,约等于 3.14
Math.E ⾃然对数的底数,约等于 2.718
Math.LN10 10 的⾃然对数值,约等于 2.302
Math.LN2 2 的⾃然对数值,约等于 0.693
Math.SQRT1_2 0.5 的平⽅根
Math.SQRT2 2 的平⽅根
上⾯这些东⻄都不⽤去记,⽤的时候拿出来看⼀下就⾏了,它是固定的不会变

方法——⽅法才是数学对象的重点

1. 绝对值 Math.abs() ⽅法
Math.abs(3); //3
Math.abs(-3); //3
2. 四舍五⼊ Math.round() ⽅法
Math.round(3.4); //3
Math.round(9.8); //10
Math.round(-10.2); //-10
Math.round(-10.8); //-11;
Math.round(-10.5); //-10
注意 :上⾯的 Math.round() 可以实现整数位的四舍五⼊,但是如果想多保留⼏位⼩数,怎么办
呢?
var a = 3.1415926;
//我希望保存3位⼩数以后再四舍五⼊,怎么办?
var b = Math.round(a * 1000) / 1000;
console.log(b);
3. Math.floor() 向下取整,返回这⼩于或等于这个数的最⼤整数——就是把数字变小了
Math.floor(88.2); //88
Math.floor(24.7); //24
Math.floor(23); //23
Math.floor(-12.4); //-13

4. Math.ceil() 向上取整 ,返回⼤于或等于这个数最⼩整数——就是把数字变大了

Math.ceil(11.1); //12
Math.ceil(22.7); //23
Math.ceil(34); //34
Math.ceil(-34.5); //-34
5. Math.pow(x,y) 函数。求取 x y 次⽅的结果
Math.pow(100,3); //1000000
Math.pow(2,8); //256
6. Math.max() ⽅法⽤于求⼀系列数当中的最⼤值
Math.max(111,23,120); //120;
通过这个⽅法来求取了数组当中的最⼤值 ——如下:
var arr = [100,87,65,34,209];
var max = Math.max.apply(Math,arr); //209
7. Math.min() ⽅法⽤于求⼀系列数当中最⼩值
Math.min(111,23,120); //23
var arr = [100,87,65,34,209];
var min = Math.min.apply(Math,arr); //34
8. Math.sqrt(x) x 的平⽅根
Math.sqrt(9); //3
9. Math.random() 获取 0~1 之间的随机数
Math.random(); //0.5808373583762474
通过这个方法我们可以取到0~100或更大之间的随机数
var x = ~~(Math.random() * 100)
当然也可以用其他运算符来缩小随机数范围(5~10):
var x = ~~((Math.random() * 5)+5)
如果想获取某⼀个范围的随机为整数,我们可以使⽤下⾯的公式:
var x = ~~(Math.random() * 范围值); //最后⽣成的随机数不包含这个范围值

10. Math.sin() ⽅法,求⼀个弧度的正弦值
11. Math.cos() ⽅法,求⼀个弧度的余弦值
12. Math.tan() ⽅法,求⼀个弧度的正切值

延时调⽤与循环调⽤

延时调⽤

延时调⽤相当于⼀次性的定时器,定时器可以把它理解为闹钟 ,我现在定义了⼀个闹钟,这个闹钟的时间到了以后就会通知我来做⼀些事情
在我们以前编程的时候,我们写的代码都会⽴即执⾏如下:
d1.getTime(); //1649217600000
d2.getTime(); //1660795200000
var d1Time = d1.getTime(); //时间戳
var d2Time = d2.getTime(); //时间戳
if (d1Time < d2Time) {
    console.log("d1在d2之前");
}else {
    console.log("d1在d2之后");
}
//要计算两个时间相隔多久
var x = d2Time - d1Time; //这样会得到⼀个时间的差值,单位是毫秒
//两个时间相差多少天
console.log(x/1000/60/60/24);
d1.valueOf() === d1.getTime();function sayHello(){
    console.log("你好啊")
}
sayHello(); //这个代码会⽴即执⾏
现在我们希望 sayHello 这个代码不要⽴即执⾏,应该是等⼀段时间以后再执⾏,这⼀种情况我们就 叫 延时调⽤
var timeId = setTimeout(sayHello, 5000);
// 上⾯的代码就设置了⼀个定时器
// 第⼀个参数:代表时间到了以后要⼲什么事情——也就是要执行的方法
// 第⼆个参数:代表设置延时的时间,以毫秒为单位
// 这个⽅法会返回定时器的编号 ,后期我们可以通过这个编号来取消这个定时器

使用延时调用的函数:

function sayHello(userName, age) {
    console.log("你好啊,我叫" + userName + ",我的年龄是:" + age);
}
var timeId = setTimeout(sayHello, 5000, "孙悟空",18);
//当我们的函数⾥⾯需要参数的时候,我们就把原来函数的参数写在`setTimeout`的后⾯就可以了
通常会将上⾯的回调函数 sayHello 写成⼀个匿名函数(更加方便快捷):
var timeId = setTimeout(function (userName, age) {
    console.log("你好啊,我叫" + userName + ",我的年龄是:" + age);
}, 5000, "孙悟空", 18);

取消延时调⽤——clearTimeout(变量名)

function sayHello(userName, age) {
    console.log("你好啊,我叫" + userName + ",我的年龄是:" + age);
}
var timeId = setTimeout(sayHello, 5000, "孙悟空", 18);
//clearTimeout(timeId); //定时器就取消了

循环调⽤

循环调⽤就是循环定时器,它会每隔⼀段时间就会⾃已执⾏⼀次(可以理解为⼿机上⾯的⼀个起床
闹钟 ,它每天早上 7 30 起床,隔 24 ⼩时执⾏⼀次)
它的语法与上⾯的延时调⽤的语⼀致
var 定时器编号 = setInterval(时间到了以后要做的事,间隔的时间)
function sayHello() {
    console.log("你好啊,现在时间是:" + new Date().toLocaleString());
}
var timeId = setInterval(sayHello, 1000);

同理 setInterval 也可以接收参数

function sayHello(userName) {
console.log("你好啊,我叫" + userName + ",现在时间是:" + new
    Date().toLocaleString());
}
var timeId = setInterval(sayHello, 1000, "帅⽓的标哥哥");

取消循环调⽤——clearTimeout(变量名)

function sayHello(userName, age) {
    console.log("你好啊,我叫" + userName + ",我的年龄是:" + age);
}
var timeId = setTimeout(sayHello, 5000, "标哥哥", 18);
//clearTimeout(timeId); //定时器就取消了
var 定时器编号 = setInterval(时间到了以后要做的事,间隔的时间);
function sayHello() {
    console.log("你好啊,现在时间是:" + new Date().toLocaleString());
}
var timeId = setInterval(sayHello, 1000)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值