目录
内置对象
JavaScript 中的对象分为3种:自定义对象 、内置对象、 浏览器对象
前面两种对象是JS 基础 内容,属于 ECMAScript; 第三个浏览器对象属于我们JS 独有的, 我们JS API 讲解
内置对象就是指 JS 语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)【不关心内部怎么实现的,直接拿来使用,比如求最大值最小值】
内置对象最大的优点就是帮助我们快速开发
JavaScript 提供了多个内置对象:Math、 Date 、Array、String等
查文档
MDN
Mozilla 开发者网络(MDN)提供了有关开放网络技术(Open Web)的信息,包括 HTML、CSS 和万维网及 HTML5 应用的 API。
MDN: https://developer.mozilla.org/zh-CN/
如何学习对象中的方法
- 查阅该方法的功能
- 查看里面参数的意义和类型
- 查看返回值的意义和类型
- 通过 demo 进行测试
Math 对象
Math 概述
Math 对象不是一个构造函数 ,所以我们不需要new来调用 而是直接使用里面的属性和方法即可。
跟数学相关的运算(求绝对值,取整、最大值等)可以使用 Math 中的成员。
console.log(Math.PI); // 一个属性 圆周率
console.log(Math.max(1, 4, 2, 13, 423, 213)); // 423
console.log(Math.max(-1, -123, -3)); // -1
console.log(Math.max(1, 2, 3, 'pink')); // NaN
console.log(Math.max()); // 如果没有参数,则结果为 - Infinity。
Math绝对值和三个取整方法
// 1.绝对值方法
console.log(Math.abs(-3)); //3
console.log(Math.abs('-1')); // 隐式转换 会把字符串型的-1转换成 数字型 1
console.log(Math.abs('pink'));
// 2.三个取整方法
// (1)Math.floor() 向下取整 往最小的取值
console.log(Math.floor(1.8)); // 直接把小数点砍掉
// (2)Math.ceil() 往上取整 往大的取值
console.log(Math.ceil(1.2)); // 2
// (3)Math.round() 四舍五入
console.log(Math.round(1.1)); //1
console.log(Math.round(1.5)); //2
console.log(Math.round(1.9)); //2
console.log(Math.round(-1.1)); //-1
console.log(Math.round(-1.5)); //-1
案例:封装自己的数学对象
利用对象封装自己的数学对象 里面有 PI 最大值和最小值
var myMath = {
PI: 3.14159263,
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.PI);
console.log(myMath.max(2, 52, 34, 6, 132));
console.log(myMath.min(2, 52, 34, 6, 132));
随机数方法random()
random() 方法可以随机返回一个小数,其取值范围是 [0,1),左闭右开 0 <= x < 1
console.log(Math.random());
想要得到两个数之间的随机整数,并且包含这两个整数
- return 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));
随机点名案例
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(getRandom(1, 10));
// 随机点名
var arr = ['赵一', '钱二', '孙三', '李四', '吴五', '张六', '老六'];
console.log(arr[1]); // 钱二 这是固定的 要让arr[]里面的数字变化
console.log(arr[getRandom(0, arr.length - 1)]);
案例:猜数字游戏
程序随机生成一个 1~ 10 之间的数字,并让用户输入一个数字,
1. 如果大于该数字,就提示,数字大了,继续猜;
2. 如果小于该数字,就提示数字小了,继续猜;
3. 如果等于该数字,就提示猜对了, 结束程序。
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
var num = getRandom(1, 10);
while (userNum != num) {
var userNum = prompt('请输入您要猜的数字: 1~10之间的数字噢');
if (userNum > num) {
alert('数字大了,继续猜');
} else if (userNum < num) {
alert('数字小了,继续猜');
}
}
alert('猜对了,就是数字' + num);
日期对象
Date 对象和 Math 对象不一样,他是一个构造函数,所以我们需要实例化后才能使用
Date 实例用来处理日期和时间
必须要new一下才能往下写日期
Date()方法的使用
1. 获取当前时间必须实例化
// 1.使用Date 如果没有参数 返回当前系统的当前时间
var date = new Date();
console.log(date);
2. Date() 构造函数的参数
- 如果Date()不写参数,就返回当前时间
- 如果Date()里面写参数,就返回括号里面输入的时间
// 2.参数常用的写法 数字型 2019,10,01 或者是字符串型的 '2019-10-1 8:8:8'
var date1 = new Date(2019, 10, 1);
console.log(date1); // 返回的是11月 不是10月
var date2 = new Date('2019-10-1 12:25:45');
console.log(date2);
日期格式化
必须要先 var date = new Date();
var date = new Date();
console.log(date.getFullYear());// 返回当前日期的年 2022
console.log(date.getMonth() + 1); // 返回当前月份(0~11) 得到的要比实际的月份小一个月 记得月份+1
console.log(date.getDate()); // 返回当前几号
console.log(date.getDay()); // 返回的是周几 周日返回的是0
我们写一个 2019年 5月1日 星期三
// 我们写一个 2019年 5月1日 星期三
var year = date.getFullYear();
var month = date.getMonth() + 1;
var dates = date.getDate();
var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
var day = date.getDay();
console.log('今天是' + year + '年' + month + '月' + dates + '日 ' + arr[day]);
要想把周几变成 星期几
获取星期几是从星期日到星期六(0~6)可以把一个数组里面装上星期日 到 星期六。
一定要星期日开头!!!
封装一个函数 返回当前的时分秒 08:08:08
function getTime() {
var time = new Date();
var hour = time.getHours();
hour = hour < 10 ? '0' + hour : hour; //又重新赋值
var minutes = time.getMinutes();
minutes = minutes < 10 ? '0' + minutes : minutes;
var seconds = time.getSeconds();
seconds = seconds < 10 ? '0' + seconds : seconds;
return '当前的时间是' + hour + ':' + minutes + ':' + seconds;
}
console.log(getTime());
获取日期的总的毫秒形式
Date 对象是基于1970年1月1日(世界标准时间)起的毫秒数
获取日期的总的毫秒形式(时间戳)
不是当前时间的毫秒数 而是距离1970年1月1日过了多少毫秒数
// 1.通过 valeof() getTime()
var date = new Date();
console.log(date.valueOf()); // 就是我们现在时间距离1970.1.1总的毫秒数
console.log(date.getTime());
// 2.简单的写法(最常用阿写法)
var date1 = +new Date(); // 返回的就是总毫秒数
console.log(date1);
// 3. H5 新增的 获得总的毫秒数
console.log(Date.now()); // 返回的就是总毫秒数