【JS-8】——javaScript中Date与Math对象

前两节我们说了函数和数组,还有一些知识点没有说完全,这次我们来补充一下。

函数的方法

现在我们来补充一下函数的两个方法call(),apply(),当对函数调用call()或apply()都会调用函数执行。

fun.call();
fun.apply();
fun();

在调用call()和apply()可以将一个对象指定为第一个参数,那么此时,这个对象将成为函数执行时的this

在这里插入图片描述
在这里插入图片描述

call()方法可以将实参在对象之后依次传递。

apply()方法需要将实参封装到数组内统一传递。

在这里插入图片描述
在这里插入图片描述

this的情况

  1. 以函数形式调用的时候,this永远都是window。
  2. 以方法的形式调用,this是调用方法的对象。
  3. 以构造函数的形式调用时,this是新建的那个对象。
  4. 使用call和apply调用时,this是指定的那个对象。

arguments对象

在调用函数时,浏览器每次回传递两个隐含的参数

  1. 函数的上下门对象this。
  2. 封装实参的对象arguments。
    • arguments是个类数组对象。它也可以通过索引获取数据,也可以获得长度。
    • 在调用函数时,我们所传递的实参都会在arguments中保存。
    • 我们及时不定义形参,也可以通过arguments使用实参。只不过比较麻烦。
    • 它里面有一个属性叫callee,这个属性对应着一个函数对象,就是当前正在执行的函数对象。

Date对象

在JS中使用Date对象来表示时间。

var d = new Date();
console.log(d);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-enXvGUcp-1588379484363)(/Users/mac/Desktop/MarkDown /Javascript/图片/【JS-8】/5.jpg)]

  • 如果直接使用构造函数创建一个Date对象,则会封装为当前代码执行的时间

  • 创建一个指定的时间对象。需要在构造函数中传递一个表示时间的字符串作为参数。格式月份/日期/年份 时:分:秒

var d2 = new Date("12/03/2020");
console.log(d2);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2qLyluY3-1588379484364)(/Users/mac/Desktop/MarkDown /Javascript/图片/【JS-8】/6.jpg)]

Date对象方法

方法描述
getDate()从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay()从 Date 对象返回一周中的某一天 (0 ~ 6)。
getFullYear()从 Date 对象以四位数字返回年份。
getHours()返回 Date 对象的小时 (0 ~ 23)。
getMilliseconds()返回 Date 对象的毫秒(0 ~ 999)。
getMinutes()返回 Date 对象的分钟 (0 ~ 59)。
getMonth()从 Date 对象返回月份 (0 ~ 11)。
getSeconds()返回 Date 对象的秒数 (0 ~ 59)。
getTime()返回 1970 年 1 月 1 日至今的毫秒数。
getTimezoneOffset()返回本地时间与格林威治标准时间 (GMT) 的分钟差。
getUTCDate()根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
getUTCDay()根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
getUTCFullYear()根据世界时从 Date 对象返回四位数的年份。
getUTCHours()根据世界时返回 Date 对象的小时 (0 ~ 23)。
getUTCMilliseconds()根据世界时返回 Date 对象的毫秒(0 ~ 999)。
getUTCMinutes()根据世界时返回 Date 对象的分钟 (0 ~ 59)。
getUTCMonth()根据世界时从 Date 对象返回月份 (0 ~ 11)。
getUTCSeconds()根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
getYear()已废弃。 请使用 getFullYear() 方法代替。
parse()返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
setDate()设置 Date 对象中月的某一天 (1 ~ 31)。
setFullYear()设置 Date 对象中的年份(四位数字)。
setHours()设置 Date 对象中的小时 (0 ~ 23)。
setMilliseconds()设置 Date 对象中的毫秒 (0 ~ 999)。
setMinutes()设置 Date 对象中的分钟 (0 ~ 59)。
setMonth()设置 Date 对象中月份 (0 ~ 11)。
setSeconds()设置 Date 对象中的秒钟 (0 ~ 59)。
setTime()setTime() 方法以毫秒设置 Date 对象。
setUTCDate()根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
setUTCFullYear()根据世界时设置 Date 对象中的年份(四位数字)。
setUTCHours()根据世界时设置 Date 对象中的小时 (0 ~ 23)。
setUTCMilliseconds()根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
setUTCMinutes()根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
setUTCMonth()根据世界时设置 Date 对象中的月份 (0 ~ 11)。
setUTCSeconds()setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。
setYear()已废弃。请使用 setFullYear() 方法代替。
toDateString()把 Date 对象的日期部分转换为字符串。
toGMTString()已废弃。请使用 toUTCString() 方法代替。
toISOString()使用 ISO 标准返回字符串的日期格式。
toJSON()以 JSON 数据格式返回日期字符串。
toLocaleDateString()根据本地时间格式,把 Date 对象的日期部分转换为字符串。
toLocaleTimeString()根据本地时间格式,把 Date 对象的时间部分转换为字符串。
toLocaleString()据本地时间格式,把 Date 对象转换为字符串。
toString()把 Date 对象转换为字符串。
toTimeString()把 Date 对象的时间部分转换为字符串。
toUTCString()根据世界时,把 Date 对象转换为字符串。实例:var today = new Date(); var UTCstring = today.toUTCString();
UTC()根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
valueOf()返回 Date 对象的原始值。
  • getDate(),获取当前日期对象是几日

  • getDay(),获取当前日期对象是周几。会返回0-6的值,0表示周日。

  • getMonth(),获取当前日期对象的月份。0表示1月,1表示2月…11表示12月。

  • getFullYear(),获取当前日期对象的年份

  • getTime(),获取当前日期对象的时间戳时间戳指的是从格林威治的标准时间:1970年1月1日,0时0分0秒。到当前日期所花费的毫秒数。1s = 1000ms。计算机在底层保存时间时,使用的都是时间戳

    • 获取当前的时间戳:time = Date.now();
    • 可以利用时间戳来测试代码执行的效率。

Math对象

Math和其他对象不同,他不是一个构造函数。它属于一个工具类。它不是构造函数,不用创造对象,它里面封装了数学对象相关的属性和方法。

我们看一下Math对象的属性

属性描述
E返回算术常量 e,即自然对数的底数(约等于2.718)。
LN2返回 2 的自然对数(约等于0.693)。
LN10返回 10 的自然对数(约等于2.302)。
LOG2E返回以 2 为底的 e 的对数(约等于 1.4426950408889634)。
LOG10E返回以 10 为底的 e 的对数(约等于0.434)。
PI返回圆周率(约等于3.14159)。
SQRT1_2返回 2 的平方根的倒数(约等于 0.707)。
SQRT2返回 2 的平方根(约等于 1.414)。
consolo.log(Math.PI);//3.14159

很方便使用,再看一下方法:

方法描述
abs(x)返回 x 的绝对值。
acos(x)返回 x 的反余弦值。
asin(x)返回 x 的反正弦值。
atan(x)以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。
atan2(y,x)返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。
ceil(x)对数进行上舍入
cos(x)返回数的余弦。
exp(x)返回 Ex 的指数。
floor(x)对 x 进行下舍入。
log(x)返回数的自然对数(底为e)。
max(x,y,z,…,n)返回 x,y,z,…,n 中的最高值。
min(x,y,z,…,n)返回 x,y,z,…,n中的最低值。
pow(x,y)返回 x 的 y 次幂。
random()返回 0 ~ 1 之间的随机数。
round(x)四舍五入。
sin(x)返回数的正弦。
sqrt(x)返回数的平方根。
tan(x)返回角的正切。
  • Math.ceil()可以对一个数进行向上取整。
console.log(Math.ceil(.95));
// expected output: 1

console.log(Math.ceil(4));
// expected output: 4

console.log(Math.ceil(7.004));
// expected output: 8

console.log(Math.ceil(-7.004));
// expected output: -7
  • Math.floor()可以对一个数进行向下取整。
console.log(Math.floor(5.95));
// expected output: 5

console.log(Math.floor(5.05));
// expected output: 5

console.log(Math.floor(5));
// expected output: 5

console.log(Math.floor(-5.05));
// expected output: -6
  • Math.round()可以对一个数进行四舍五入取整。
console.log(Math.round(0.9));
// expected output: 1

console.log(Math.round(5.95), Math.round(5.5), Math.round(5.05));
// expected output: 6 6 5

console.log(Math.round(-5.05), Math.round(-5.5), Math.round(-5.95));
// expected output: -5 -5 -6
  • Math.random()可以用来生成一个0-1之间的随机数。
function getRandomInt(max) {
  return Math.floor(Math.random() * Math.floor(max));
}

console.log(getRandomInt(3));
// expected output: 0, 1 or 2

console.log(getRandomInt(1));
// expected output: 0

console.log(Math.random());
// expected output: a number between 0 and 1

生成一个x-y之间的随机数:Math.round(Math.random()*(y-x)+x)

  • Math.max()可以获得多个数中的最大值。Math.min()获取多个数中的最小值。
console.log(Math.max(1, 3, 2));
// expected output: 3

console.log(Math.min(-1, -3, -2));
// expected output: -3

const array1 = [1, 3, 2];

console.log(Math.max(...array1));
// expected output: 3
  • Math.pow(x,y)返回x的y次幂。
console.log(Math.pow(7, 3));
// expected output: 343

console.log(Math.pow(4, 0.5));
// expected output: 2

console.log(Math.pow(7, -2));
// expected output: 0.02040816326530612
//                  (1/49)

console.log(Math.pow(-7, 0.5));
// expected output: NaN
  • Math.sqrt()对一个数进行开方运算。
function calcHypotenuse(a, b) {
  return(Math.sqrt((a * a) + (b * b)));
}

console.log(calcHypotenuse(3, 4));
// expected output: 5

console.log(calcHypotenuse(5, 12));
// expected output: 13

console.log(calcHypotenuse(0, 0));
// expected output: 0

之前的

【JS-6】——JavaScript构造函数与原型
【JS-7】——JavaScript数组的使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值