JavaScript 中对象三种:
1.自定义对象
2.内置对象
3.浏览器对象
其中内置对象
Math/Array/Date/String…
一.内置对象:Math对象
1.随机生成RGB
function random(min,max){
return Math.floor(Math.random()*(max-min+1)+min)
}
function randomRGB(min,max){
var color1=random(min,max)
var color2=random(min,max)
var color3=random(min,max)
// return 'rgb(10,10,10)'
return 'rgb('+color1+','+color2+','+color3+')';
}
console.log(randomRGB(0,255))
2.模拟实现min()/max()
Math.max()时对象.方法名调用
var MyMath = {
max: function () {
var max=arguments[0]
for(var i = 1; i < arguments[i]; i++) {
if(max < arguments[i]){
max=arguments[i]
}
}
return max
},
min: function () {
var min=arguments[0]
for(var i = 1; i < arguments[i]; i++) {
if(min > arguments[i]){
min=arguments[i]
}
}
return min
}
}
MyMath.max();
MyMath.min();
二.内置对象:Date对象
Date对象基于1970-1-1世界标准时间起的毫秒数
1.Date对象的构造函数形式
- 空构造函数
var d=new Date();
console.log(d)
- 构造函数中传入毫秒值
var d=new Date(1580528326790);
console.log(d)
- 日期形式字符串
- 传入数字
2.获取日期对象的毫秒值
var d=new Date()
d.getTime()
3.获取日期对象的毫秒值 静态成员
var d= Date.now(); //now是静态成员
var d= new Date();
d.getTime()//是实例成员
或者
var d=new Date()
d.valueof()
4.判断是不是日期对象
date isinstanceof Date 返回值为布尔类型
5.Math对象和Date对象的区别
Math对象:不是一个构造函数,里面提供是静态成员
Date对象:是一个构造函数,即使用时,new Date() 创建对象
6.函数可以返回多个值:return 一个对象
function fn() {
return {
year:1,
day: 2,
hour: 7
}
}
7.计算两个日期相差的天/小时/秒数
//计算相差的天/时/分/秒
//相差的总的秒数 :209494329/1000
//相差的天数:209494329/1000/60/60/24
//相差的小时:209494329/1000/60/60%24
//相差多少分钟:209494329/1000/60%60
//相差多少秒:209494329/1000%60
function getInterval(date1,date2) {
d=date1-date2;
year=d/1000
day=Math.round(year/60/60/24)
hour=Math.round(year/60/60%24)
minument=Math.round(year/60%60)
ms=Math.round(year%60)
return {
day: day,
hour: hour,
minument: minument,
ms: ms,
}
}
var date2=new Date();
var date1=new Date(2020,9,1)
console.log(getInterval(date1,date2))
**
三. 内置对象:Array对象
**
数组即是复杂数据类型,也是函数
1.创建数组对象
- 字面量
var array = [] // 空数组
var array = [1, 2, 3]
- 数组的构造函数Array
var array = new Array(); // 空数组
var array = new Array(2,3,4);
//获取数组的长度
array.length()
2. 如何判断一个变量是否是数组对象
(1)arr instanceof Array
(2)Array.isArray(arr) 返回值为布尔类型
3.数组常用的方法
(1).栈的操作(先进后出)
push() // 返回值是改变后数组的长度
pop() // 取出数组的最后一项,修改length长度
(2).队列操作(先进先出)
push()
shift() //取出数组的第一个元素,修改length长度
unshift() // 在数组最前面插入项,返回数组的长度
(3)排序方法
reverse()
sort()
默认是对字符编码,从小到大排序
常用的是sort(compareFunction) 若compareFunction(a,b)返回值小于0 a排在b前面 反之
var arr=[5,1,8,0]
function compareFunction(a,b) {
return a-b
}
console.log(arr.sort(compareFunction)
等价于
var arr=[5,1,8,0]
arr.sort(function (a,b){
return a-b
})
(4).操作方法
concat() // 把参数拼接到当前数组
slice() // 从当前数组中截取一个新的数组,不影响原来数组,参数start 从0开始,end从1开始
splice() //删除或者替换当前数组的某些项目,参数start,deleteCount,options(要替换的项目)
(5).位置方法
indexOf()、lastIndexOf() // 没找到返回-1
(6).迭代方法 不会修改原数组(可选)
every() filter() forEach() map() some()
(7).将数组的所有元素链接到一个字符串中
jion()
4.清空数组
arr=[]; //推荐使用
arr.length=0;
arr.splice(0,arr. );
5.把工资超过2000的删除
var sal=[1500, 1200, 2100, 1800]
var s=sal.filter(function(value){
return value<2000
})
console.log(s)
**
四.基本包装类型
**
作用是:把基本类型包装成复杂类型
基本包装类型三种
- Number
- String
- Boolean