(一) 构造函数和创建对象
普通函数的作用: 为了实现某个功能
构造函数的作用: 用来创建对象, 创建出来的对象也叫做构造函数的实例
// 实现两个数相加的功能
function add(a,b){
var sum = a+b;
return sum;
}
// 字面量创建对象方式
var obj = {
name: '张三',
age: 100
}
// 使用构造函数创建对象
var obj2 = new Object();
obj2.name = '李四';
obj2.age = 18;
console.log('obj2',obj2);
// 字面量创建数组的方式
var arr = ['a','b','c'];
// 通过构造函数来创建数组
var arr2 = new Array();
arr2[0] = 'x';
arr2[1] = 'y';
arr2[2] = 'z';
console.log('arr2',arr2);
// 声明一个用来创建猫的构造函数
function Cat(name, color) {
this.name = name;
this.color = color;
}
// 创建两只猫
var cat1 = new Cat('小花','black');
var cat2 = new Cat('小黑', 'white');
console.log('cat1', cat1);
console.log('cat2', cat2);
日期对象常用方法
1.创建日期的3种方式
// 创建日期对象
// 方式1: 得到当前时间的日期对象
var date = new Date();
console.log('date',date);
// 方式2: 得到指定日期的日期对象
var date2 = new Date('2000-09-01 12:00:00');
console.log('date2',date2);
// 方式3: 参数为0, 计算机的起始时间1970年1月1日
var date3 = new Date(0);
console.log('date3',date3);
// 方式4: 参数是毫秒数
// var date4 = new Date(86400000);
var date4 = new Date(1663041444916);
console.log('date4',date4);
2.日期对象常用方法
new Date()现在日期
getFullYear()年份
getMonth() + 1月份
getDate()日
getHours()时钟
getMinutes()分钟
getSeconds()秒钟
getDay()星期几
getTime()毫秒数
Date.now()现在时间
//
var date = new Date();
var Y = date.getFullYear();
console.log('Y', Y);
var M = date.getMonth()+1;
console.log('M', M);
var D = date.getDate();
console.log('D', D);
var h = date.getHours();
var m = date.getMinutes();
var s = date.getSeconds();
console.log('h', h);
console.log('m', m);
console.log('s', s);
var w = date.getDay();
console.log('w', w);
var time = date.getTime();
console.log('time', time);
var now = Date.now();
console.log('now', now);
**
日期函数的应用
**在这里插入代码片
后台返回的数据一般是毫秒数, 需要我们进行处理, 变成 ‘xxxx年xx月xx日 xx:xx:xx’ 的样子,代码如下:
var premiereAt = 1632960300108;
function formatDate(time) {
var date = new Date(time);//现在时间
var Y = date.getFullYear();
var M = date.getMonth()+1;
var D = date.getDate();
var h = date.getHours();
var m = date.getMinutes();
var s = date.getSeconds();
var dateStr = {M}月
{h}:
{s};
return dateStr;
}
var str = formatDate(premiereAt);
console.log(str);
// 显示现在的时间
var time = Date.now();
var str2 = formatDate(time);
console.log(str2);
2,比较两人的年龄
日期对象可以相减,毫秒数越大,年龄越小
var haojie = “2000-8-19”;
var liucheng = “1999-10-20”;
function compareAge(age1, age2) {
var date1 = new Date(age1);
var date2 = new Date(age2);
if (date1 - date2 > 0) {
console.log(“柳成大”);
} else if (date1 - date2 < 0) {
console.log(“浩杰大”);
} else {
console.log(“一样大”);
}
}
compareAge(haojie, liucheng);
日期函数库
moment.js 线上地址: https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js
Mach()对象
- Math.round(x) // 四舍五入最接近的整数
- Math.abs(x) // 绝对值(正数)
- Math.floor(x) // 向下取整
- Math.ceil(x) //向上取整
- Math.random() // 随机数,包前不包后
- toFixed(x) // 保留小数位
- parseInt() //小数变整数
常用方法
Math.round(x)
Math.abs(x)
Math.floor(x)
Math.ceil(x)
Math.random()
其它:正弦、余弦、平方根...
var num1 = Math.round(5.88);
var num2 = Math.round(5.44);
console.log("num1", num1);
console.log("num2", num2);
var num3 = Math.abs(-2.88);
console.log("num3", num3);
var num4 = Math.floor(3.99);
console.log("num4", num4);
var num5 = Math.ceil(3.0001);
console.log("num5", num5);
for (var i = 0; i < 10; i++) {
var num = Math.random();
console.log("random"+i, num);
}
(2) 相关方法
toFixed(x) 保留x位小数 (类型是数字)
parseInt 把小数变整数
var num = 10.8888;
var res = num.toFixed(2);
console.log('res',res);
var num1 = 10.2222;
var num2 = 10.8888;
var res1 = parseInt(num1);
var res2 = parseInt(num2);
console.log('res1',res1);
console.log('res2',res2);
(3)Mach()应用
获取某个范围内的随机数
// 原理
// num的取值范围是 0~1的随机数(包前不包后)
var num = Math.random();
// num2的取值范围0~5(包前不包后)
var num2 = Math.random() * 5;
var i = 1;
for (;;) {
// num3的取值范围是5~10(包前不包后)
var num3 = Math.random() * 5 + 5;
// res的取值范围就是5~10
var res = Math.round(num3);
}
// 封装成函数
function getRandom(min, max) {
var num = Math.random() * 10 + (max - min);
return Math.round(num);
}
var res = getRandom(10, 20);
console.log('res',res);