一.内置对象
Js中对象分为三种:自定义对象,内置对象,浏览器对象
内置对象就是指js语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能。
查MDN文档:MDN Web Docs
1.查阅方法的功能
2.查看参数的意义和类型
3.查看返回值的意义和类型
4.通过demo测试
二.Math对象
//Math对象
console.log(Math.PI);//圆周率
console.log(Math.max(1,3,5));
console.log(Math.max(1,3,'pink'));//输出NaN
console.log(Math.max());//-Infinity
//封装自己的Math对象
var myMath={
PI:3.141592653,
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(1,5,9));
console.log(myMath.min(1,5,9));
Math绝对值和三个取整方法
//Math绝对值和三个取整方法
console.log(Math.abs(-1));//绝对值
console.log(Math.abs('-1'));// 1
console.log(Math.abs('pink'));//NaN
console.log(Math.floor(1.9));//向下取整 往小了取 1
console.log(Math.ceil(1.1));//向上取整 往大了取 2
console.log(Math.round(1.1));//四舍五入 1
console.log(Math.round(-1.1));//-1
console.log(Math.round(-1.5));//结果应该是-2,但输出是-1
//其他数字都是四舍五入,只有.5特殊,是往大了取。
//Math对象随机数方法 random()返回一个随机的小数
//在0与1之间,大于等于0小于1。
//方法里面是没有参数的。
//Math对象随机数方法 random()返回一个随机的小数
//在0与1之间,大于等于0小于1。
//方法里面是没有参数的。
console.log(Math.random());
//得到两个数之间的随机整数,并且包含这2个数
function getRandom(min,max){
return Math.floor(Math.random()*(max-min+1))+min;
}
console.log(getRandom(1,10));
三.日期对象
Date()日期对象是一个构造函数,必须使用new来调用创建我们的日期对象
//日期对象
var arr=new Array();//创建一个数组对象
var obj=new Object();//创建了一个对象实例
//1.使用Date
var date=new Date();//没有参数,返回当前系统的当前时间
console.log(date);
//2.使用参数
var date1=new Date(2022,10,1)
console.log(date1);//返回的是11月,不是10月
var date2=new Date('2022-10-1 8:8:8');
console.log(date2);
//日期格式化
var date=new Date();
console.log(date.getFullYear());//返回当前日期的年
console.log(date.getMonth());//月 返回的月份小1一个月,因为月份是从0到11
console.log(date.getMonth()+1);
console.log(date.getDate());//几号
console.log(date.getDay());//星期几 周一返回1,周六返回6,但是周天返回0
console.log(date.getHours());
console.log(date.getMinutes());
console.log(date.getSeconds());
function getTime(){
var time=new Date();
var h=time.getHours();
h=h<10?'0'+h:h;
var m=time.getMinutes();
m=m<10?'0'+m:m;
var s=time.getSeconds();
s=s<10?'0'+s:s;
return h+':'+m+':'+s;
}
console.log(getTime());
Date毫秒数是基于1970年1月1日。
//获得总的毫秒数
var date = new Date();
console.log(date.valueOf());
console.log(date.getTime());
var date1=+new Date();
console.log(date1);
console.log(Date.now());
//倒计时例子
function countDown(time){
var nowTime=+new Date();
var inputTime=+new Date(time);
var times=(inputTime-nowTime)/1000;
var d=parseInt(times/60/60/24);//天
var h=parseInt(times/60/60%24);
var m=parseInt(times/60%60);
var s=parseInt(times%60);
return d+'天'+h+'时'+m+'分'+s+'秒';
}
console.log(countDown('2022-12-13 18:00:00'));
四.数组对象
//创建数组
var arr=[1,2,3];
console.log(arr[0]);
var arr1=new Array(2);//表示数组的长度为2
console.log(arr1);
var arr1=new Array(2,3);//等价于[2,3]
console.log(arr1);
//判断是否为数组
var arr=[];
console.log(arr instanceof Array);
console.log(Array.isArray(arr));
//数组排序
var arr=['pink','red','blue'];
arr.reverse();
console.log(arr);
var arr1=[3,4,7,1];
arr1.sort();
console.log(arr1);
var arr1=[13,4,77,1,7];
arr1.sort();//此时排序是有问题的,因为sort排序时,看左边的第一位数。
console.log(arr1);
var arr1=[3,4,7,1];
arr1.sort(function(a,b){
return a-b;//升序排序
});
console.log(arr1);
如果数组里边有很多个相同元素,indexof只返回第一个元素的索引。
如果在数组里找不到元素,返回-1.
//数组去重
function unique(arr){
var newArr=[];
for(var i=0;i<arr.length;i++){
if(newArr.indexOf(arr[i])===-1){
newArr.push(arr[i]);
}
}
return newArr;
}
var demo=unique(['c','a','z','c','a','z','b']);
console.log(demo);
将数组转换为字符串
五. 字符串对象
基本包装类型:就是把简单数据类型包装成为了复杂数据类型。
字符串的不可变:指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。
字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串。
//根据字符返回位置
var str='你好啊';
console.log(str.indexOf('好'));
console.log(str.indexOf('啊',1));//从索引号是1的位置开始往后查找
字符串的操作方法:
//替换字符
var str='andy';
console.log(str.replace('a','b'));//出现多个需要替换的字符时,替换第一个
//字符转换为数组
var str='red,pink,blue';
console.log(str.split(','));//用逗号进行分割
简单数据类型又叫做基本数据类型或者值类型,复杂数据类型又叫做引用类型
值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型
String,number,boolean,undefined,null
引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型,通过new关键字创建的对象(系统对象,自定义对象),如object,array,date等。
//简单数据类型null,返回的是一个空的对象,object
var timer=null;
console.log(typeof timer);
简单数据类型放在栈里面,存放的是值。
复杂数据类型,首先在栈中存放十六进制的地址,然后再由地址去堆里面找数据。