9.JavaScript内置对象
1.内置对象
-
JavaScript中的对象分为3种:自定义对象、内置对象、浏览器对象
-
前面两种对象是JS基础内容,属于ECMAScript;第三个浏览器对象属于我们S独有的,我们JS API讲解
-
内置对象就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)
-
内置对象最大的优点就是帮助我们快速开发
-
JavaScript提供了多个内置对象:Math、 Date . Array、string等
//去除两边空格
trim()
//切割字符串
slice()
let str='index.js'; console.log(str.slice(-3)))==>'.js'
2. 查文档
2.1 MDN
学习一个内置对象的使用,只要学会其常用成员的使用即可,我们可以通过查文档学习,可以通过MDN/W3C 来查询。
Mozilla 开发者网络(MDN)提供了有关开放网络技术(Open Web)的信息,包括 HTML、CSS 和万维网及 HTML5 应用的 API。
MDN: https://developer.mozilla.org/zh-CN/
2.2 如何学习对象中的方法
-
查阅该方法的功能
-
查看里面参数的意义和类型
-
查看返回值的意义和类型
-
通过 demo 进行测试
3. Math 对象
3.1 Math 概述
Math 对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值,取整、最大值 等)可以使用 Math 中的成员。
Math.PI // 圆周率
Math.floor() // 向下取整
Math.ceil() // 向上取整
Math.round() // 四舍五入版 就近取整 注意 -3.5 结果是 -3
Math.abs() // 绝对值
Math.max()/Math.min() // 求最大和最小值
注意:上面的方法必须带括号
3.2 随机数方法 random()
random() 方法可以随机返回一个小数,其取值范围是 [0,1),左闭右开 0 <= x < 1 得到一个两数之间的随机整数,包括两个数在内
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
生成length个0~9的随机数:
function random(length) {
let result = ''
for (let i = 0; i < length; i++) {
let index = Math.floor(Math.random() * 10)
result += index
}
return result
}
4. 日期对象
4.1 Date 概述
-
Date 对象和 Math 对象不一样,他是一个构造函数,所以我们需要实例化后才能使用
-
Date 实例用来处理日期和时间
4.2 Date()方法的使用
1.获取当前时间必须实例化
var now = new Date ();
console.log (now) ;
2.Date(构造函数的参数 如果括号里面有时间,就返回参数里面的时间。例如日期格式字符串为‘2019-5-1’,可以写成new Date(2019-5-1")或者new Date(2019/5/1)
4.3 日期格式化
方法名 | 说明 | 代码 |
---|---|---|
getFullYear() | 获取当年 | dObj.getFullYear() |
getMonth() | 获取当月(0-11) | dObj.getMonth() |
getDate() | 获取当天日期 | dObj.getDate() |
getDay() | 获取星期几(周日0到周六6) | dobj.getDay() |
getHours() | 获取当前小时 | dobj.getHours() |
getMinutes() | 获取当前分钟 | dObj.getMinutes() |
getSeconds() | 获取当前秒钟 | dObj.getSeconds() |
4.4 获取日期的总的毫秒形式 (时间戳)
Date 对象是基于1970年1月1日(世界标准时间)起的毫秒数
为什么计算机起始时间从1970年开始? 我们经常利用总的毫秒数来计算时间,因为它更精确
// 实例化Date对象
var now = new Date();
// 1. 用于获取对象的原始值
console.log(date.valueOf())
console.log(date.getTime())
// 2. 简单写可以这么做
var now = + new Date();
// 3. HTML5中提供的方法,有兼容性问题
var now = Date.now();
小结代码:
/* 生成系统当前时间 */
function createTime() {
const date = new Date()//创建时间对象
const yy = date.getFullYear()//年
const MM = (date.getMonth() + 1 + '').padStart(2, '0')//月(padStart:字符串不满2位数,开头补全'0')
const dd = (date.getDate() + '').padStart(2, '0')//日
const hh = (date.getHours() + '').padStart(2, '0')//小时
const mm = (date.getMinutes() + '').padStart(2, '0')//分钟
const ss = (date.getSeconds() + '').padStart(2, '0')//秒钟
return `${yy}-${MM}-${dd} ${hh}:${mm}:${ss}`//返回时间
}
/* 转换时间戳 */
function getTimes(time) {
const date = +new Date(time)
// const date1 = Date.now()//H5当前时间戳
// console.log(date1)
return date
}
/* 格式化时间 */
function formatTime(time) {
/* 格式化的时间戳必须是Number型*/
const date = new Date(time)//创建时间对象
const yy = date.getFullYear()//年
const MM = (date.getMonth() + 1 + '').padStart(2, '0')//月
const dd = (date.getDate() + '').padStart(2, '0')//日
const hh = (date.getHours() + '').padStart(2, '0')//小时
const mm = (date.getMinutes() + '').padStart(2, '0')//分钟
const ss = (date.getSeconds() + '').padStart(2, '0')//秒钟
return `${yy}-${MM}-${dd} ${hh}:${mm}:${ss}`//返回时间
}
/* 倒计时 */
function countDown(time) {
var nowTime = +new Date();