『JavaScript』Date、Math和包装类

本篇博客介绍一下Date对象、Math工具类的基本使用,包装类的基本概念。

Date对象


JS中使用Date对象来表示一个时间

创建Date对象


方式一

// 创建一个时间对象
var date = new Date();

alert("date: " + date);

在这里插入图片描述
方式二

var d1 = new Date("11/11/2019");
document.write("d1: " + d1 + "<br />");

var d2 = new Date("11/11/2019 11:11:11");
document.write("d2: " + d2 + "<br />");

在这里插入图片描述
注意时间格式"月/日/年 时:分:秒"

常用方法


getDate()


获取当前Date对象是几号

var date = new Date();

document.write("date: " + date + "<br />");
document.write("date.getDate(): " + date.getDate() + "<br />");

在这里插入图片描述

getDay()


获取当前Date对象是周几

var date = new Date();

document.write("date: " + date + "<br />");
document.write("date.getDay(): " + date.getDay() + "<br />");

在这里插入图片描述
注意:getDay()会返回一个0~6的数字,0表示周日

getMonth


获取当前Date对象的月份

var date = new Date();

document.write("date: " + date + "<br />");
document.write("date.getMonth(): " + date.getMonth() + "<br />");

在这里插入图片描述
注意:getMonth()会返回一个0~11的值,0表示1月

getFullYear()


获取当前Date对象的年份

var date = new Date();

document.write("date: " + date + "<br />");
document.write("date.getFullYear(): " + date.getFullYear() + "<br />");

在这里插入图片描述

getTime()


获取当前Date对象的时间戳时间戳指的是从格林威治标准时间的1970年1月1日0时0分0秒到当前时间的毫秒数

var date = new Date();

document.write("date: " + date + "<br />");
document.write("date.getTime(): " + date.getTime() + "<br />");

在这里插入图片描述
注意时间戳是以格林威治标准时间的1970年1月1日0时0分0秒为开始

var date = new Date("1/1/1970 0:0:0");

document.write("date: " + date + "<br />");
document.write("date.getTime(): " + date.getTime() + "<br />");

在这里插入图片描述
可以看到这里的时间戳并不是0,因为我们输入的是1970年1月1日0时0分0秒是中国时间,而不是格林威治时间

now()


获取当前时间的时间戳

var date = new Date();

document.write("date: " + date + "<br />");
document.write("date.getTime(): " + date.getTime() + "<br />");
document.write("Date.now(): " + Date.now() + "<br />");

在这里插入图片描述

Math工具类


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

常用属性和方法


PI


Math中封装了PI属性,表示圆周率

alert("Math.PI: " + Math.PI);

在这里插入图片描述

abs()


求一个数的绝对值

document.write("Math.abs(-1): " + Math.abs(-1) + "<br />");
document.write("Math.abs(0): " + Math.abs(0) + "<br />");
document.write("Math.abs(1): " + Math.abs(1) + "<br />");

在这里插入图片描述

ceil()


上舍入,向上取整

document.write("Math.ceil(1.1): " + Math.ceil(1.1) + "<br />");
document.write("Math.ceil(1.9): " + Math.ceil(1.9) + "<br />");

在这里插入图片描述

floor()


下舍入,向下取整

document.write("Math.floor(1.1): " + Math.floor(1.1) + "<br />");
document.write("Math.floor(1.9): " + Math.floor(1.9) + "<br />");

在这里插入图片描述

round()


四舍五入

document.write("Math.round(1.1): " + Math.round(1.1) + "<br />");
document.write("Math.round(1.9): " + Math.round(1.9) + "<br />");

在这里插入图片描述

pow()


求幂:pow(x, y);x的y次幂

document.write("Math.pow(2, 3)" + Math.pow(2, 3) + "<br />");

在这里插入图片描述

sqrt()


求算数平方根

document.write("Math.sqrt(4): " + Math.sqrt(4) + "<br />");

在这里插入图片描述

random()


生成一个0~1之间的随机数,不包括0和1,即(0, 1)。

for (var i = 0; i < 10; ++i) {
	document.write("Math.random(): " + Math.random() + "<br />");
}

在这里插入图片描述
如果想要生成[x, y]的随机数,公式如下:Math.round(Math.random() * (y - x) + x);

// 生成10个[2, 8]的随机数
for (var i = 0; i < 10; ++i) {
	document.write(
		"Math.round(Math.random() * (8 - 2) + 2): " + 
		Math.round(Math.random() * (8 - 2) + 2) + 
		"<br />"
);

在这里插入图片描述

包装类


我们知道JavaScript中数据类型分为两类基本数据类型和引用数据类型

  • 基本数据类型有:String、Number、Boolean、Null和Undefined
  • 引用数据类型Object

在JS中为我们提供了三个包装类通过这三个包装类可以将基本数据类型转换为引用数据类型

  • String()将String类型转换为String对象
  • Number()将Number类型转换为Number对象
  • Boolean()将Boolean类型转换为Boolean对象

我们来看一个简单的演示

var str = "hello, world!";
document.write("typeof str: " + typeof str + "<br />");

str = new String(str);
document.write("typeof str: " + typeof str + "<br />");

在这里插入图片描述

注意:在实际应用中不会使用基本数据类型的对象基本数据类型的对象是给浏览器自己用的,用来做一些隐式类型转换
我们来看一段代码

var num = 12;
// num是基本数据类型,是没有方法的。
// 这里是先将num转为Number类型的对象,然后调用其内部的toString()方法转为String类型对象
// 最后将String类型对象转为String类型
num = num.toString();

document.write("num: " + num + "<br />");
document.write("typeof num: " + typeof num + "<br />");

在这里插入图片描述
方法和属性只能添加给对象,不能添加给基本数据类型。当我们对一些基本数据类型的值去调用属性和方法时,浏览器会临时使用包装类将其转换为对象,然后再调用对象的属性和方法调用完以后,再将其转换会基本数据类型

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值