javascript的内置对象
- 什么是内置对象
在javascript中的对象分为3种:自定义对象,内置对象,浏览器对象
前面两中对象是JS基础内容,属于ECMAScript,第三个浏览器对象属于JS独有的
内置对象:就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是基本而必要的功能,(属性和方法)
内置对象最大的有点就是帮助快速开发
javascript提供多个内置对象:Math,Date,Array,String等 - 根据文档查询指定API的使用方法
文档搜索地址:MDN文档 - math对象的常用方法
Math对象不是构造函数,它具有数学常数,和函数的属性和方法,和数学相关的运算,(求绝对值,取整,最大值等)可以使用Math中的成员
比如:
Math.Pr 圆周率
Math.floor 向下取整
Math.ceil 向上取整
Math.abs 绝对值
Math.max() Math.min() 求最大值和最小值
自己封装一个数学对象
<script>
var Mymath={
pi:3.1415926,
max:function (){
var max=arguments[0]
for(var i=0;i<=arguments.length;i++){
if(arguments[i]>max){
max=arguments[i]
}
}
return max
},
min:function (){
var min=arguments[0]
for(var i=0;i<=arguments.length;i++){
if(arguments[i]<min){
min=arguments[i]
}
}
return min
}
}
console.log(Mymath.min(1,2,3,4))
console.log(Mymath.max(1,2,3,4))
</script>
Math对象的随机数方法:Math.random()
(1)返回一个随机小数 0=<x<1
(2)这个方法里面不跟参数(3)代码
<script>
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min; //含最大值,含最小值
}
var arr=["张三","张三丰","lisi","lisisi"]
console.log(arr[getRandom(0,arr.length-1)])
文档查询:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/random
- Data日期对象的常用方法
注意:Date对象和Math对象不一样,它时间一个构造函数,所以需要实例化后才能使用(必须使用new来调用创建我们的日期对象),Date主要用来处理日期和时间
<script>
var mydate=new Date()//没有加参数返回的是当前的时间
console.info(mydate)
var date=new Date("2021-3-28")//有参数就返回参数里面是的时间
console.log(date);
</script>
日期的格式化:如输出2019-8-8 8:8:8格式的日期
<script>
var date=new Date()
console.log(date);
var year=date.getFullYear()//输出当前年份
console.log(year);
var month=date.getMonth()//输出当前月份,返回的月份小一个月,记得月份加一
console.log(year+"-"+month);//拼接 输出 2021-2
</script>
练习:要求封装一个函数返回当前的时分秒 格式 08:08:08
<script>
function nowtime(){
var date=new Date()
var h=date.getHours()
console.log(date);
h=h<10?"0"+h:h
var m=date.getMinutes()
m=m<10?"0"+m:m
var s=date.getSeconds()
s=s<10?"0"+s:s
return h+':'+m+':'+s
}
console.log(nowtime());//输出:00:04:56
</script>
获取总的毫秒数(时间戳)的代码:三种方式
<script>
//获得Date总的毫秒数,不是当前时间的毫秒数,而是1917年1月,1日过了多少毫秒数
//(1)通过valueOf() 和 getTime()
var date= new Date()
console.log(date.valueOf());
console.log(date.getTime());//输出:现在的时间距离1970年1.1.总的毫秒数
//(2)简单常用的写法:
var date1=+new Date()//返回和上面一样
//(3)H5新增的获得总的毫秒数
console.log(Date.now());
</script>
倒计时的计算:
<script>
function countTime(time) {
var nowTime=+new Date()//返回当前的时间的总的毫秒数
var inputTime= +new Date(time)//用户输入的时间的总的毫秒数
var time= (inputTime-nowTime) /1000//time是剩余时间的总的秒数
var d=parseInt(time / 60 /60 /24) //天
var h=parseInt(time / 60 /60 %24) //时
var m=parseInt(time /60 %60) //分
var s=parseInt(time %60) //秒
return d+'天'+h+'时'+m+"分"+s+"秒"
}
console.log(countTime("2021-5-1"))
</script>
文档查询:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date
6. Array对象的常用方法
(1)数组对象的创建
<script>
// 字面两方式
var arr=[1,2,3]
//new Array()创建
var arry=new Array()//创建一个空数组
var arr1=new Array(2,3)//等价于[2,3]
</script>
(2)检测是否为数组的两种方法
https://www.jb51.net/article/189720.htm
(3)添加和删除数组元素的方法
<script>
var arr=[1,2,3,4,5]
arr.push(7,8,9)//追加元素
console.log(arr);//[1, 2, 3, 4, 5, 7, 8, 9]0: 11: 22: 33: 44: 55: 7length: 6__proto__: Array(0)
arr.pop()//删除一个末尾元素
console.log("删除",arr.pop());//返回删除元素的值
arr.unshift(88)
console.log("删除",arr); //[88, 1, 2, 3, 4, 5, 7]
arr.shift()
console.log("删除",arr); //删除 (6) [1, 2, 3, 4, 5, 7]
</script>
(4)获取数组元素的索引
indexOf()在数组中查找给定元素的第一个索引 ,如果存在返回索引号,如果不存在则返回-1
lastindexOf() 在数组中的最后一个索引,如果存在返回索引号,如果不存在则返回-1
(5)数组的排序,筛选
<script>
//数组的筛选
var arr=[1500,1200,2000,2100,1800]
var newarr=[]
for(var i=0;i<=arr.length;i++){
if(arr[i]<2000){
newarr.push(arr[i])
}
}
console.log(newarr);
//数组的排序
console.log("数组的排序",arr.reverse());
var arr1=[12,57,63,74,85]
console.log("数组的排序",arr1.sort());
//获取数组元素的索引:
console.log("获取数组元素的索引",arr1.indexOf(12));//输出:0
console.log("获取数组元素的索引2",arr1.lastIndexOf(12));//输出:0
</script>
(6).数组的去重:
(7).数组转化为字符串:
<script>
// 去重
var oldarr=[1,1]
var newarr=[]
for(var i=0;i<oldarr.length;i++){
if(newarr.indexOf(oldarr[i])===-1){
newarr.push(oldarr[i])
}
}
console.log("去重",newarr);
//数组转化为字符串
var colors=["red","blanck","blue"]
console.log("数组转化为字符串toString",colors.toString());//输出:数组转化为字符串toString red,blanck,blue
console.log("数组转化为字符串join",colors.join("-"));//输出:数组转化为字符串join red-blanck-blue
</script>
基本包装类型
只有复杂数据类型才有属性和方法,对象才有属性和方法,基本包装类型:就是吧简单数据类型包装成为复杂数据类型,案列:
<script>
//基本包装类型
var str="niuchangju"
//(把简单数据类型包装为复杂数据类型)
var temp=new String("str")
//(2)把临时变量的值给str
str=temp
//(3)销毁这个临时变量
temp=null
</script>
- String对象的常用方法
(1)根据字符返回位置
方法一: indexOf(“要查找的字符”,起始的位置) 两个参数,找不到相应的结果就返回-1,找得到就返回所在位置的下标
方法二:lastIndexOf()
<script>
//str.indexOf("要查找的字符",起始的位置) 两个参数
var str="改革春风吹满地,春天来了";
console.log(str.indexOf("春"));//2
console.log(str.indexOf("春",3));//8 从索引号3的位置开始往后查找
</script>
(2)根据位置返回字符
<script>
//根据位置返回字符
//方法一
var str ="andy";
console.log(str.charAt(3));//y
//遍历所有字符
for(var i=0;i<=str.length;i++){
console.log(str.charAt(i));//返回所有字符
}
//方法二:返回相应索引号的字符ASCLL值,目的判断用户按的哪个键
console.log(str.charCodeAt(0));//97
//方法三:str[index] h5新增的
console.log(str[2]);//d
</script>
(3)在一个对象中,判断是否有该属性 对象[‘属性名’]
var o={
age:18
}
if(o["age"]){
console.log("里面有该属性");
}else{
console.log("里面没有该属性");
}
(4)统计出现最多的字符、
<script>
//统计出现最多的字符、
var bigstr='abhsbsbdjskbbbb';
var o={}
for(var i=0;i<=bigstr.length;i++){
var chars=bigstr.charAt(i)//是字符串的每一个字符
if(o[chars]){//得到的是属性值
o[chars]++
}else{
o[chars]=1
}
}
console.log("返回次数最多的字符",o);//{a: 1, b: 7, h: 1, s: 3, d: 1, …}
//求出出先次数最多的字符
var max=0
for(var k in o){
//k得到的是属性名
//o[k]得到的是属性值
if(o[k]>max){
max=o[k];
}
}
console.log(max);//7
</script>
(5)拼接以及截取字符串
<script>
//字符串的拼接以及截取 concat("字符串1",子字符串2,....)
var str="andy"
console.log(str.concat("red"))//andyred
//substr("截取的起始位置",”需要截取的几个字符)
var str1="改革春风吹满地"
console.log(str1.substr(2,2));//第一个2是索引号的2,从第几个开始,第二个2是取几个字符 春风
</script>
(6)替换字符串以及转化为数组
<script>
var bigstr='abhsbsbdjskbbbb';
//替换字符:replace("被替换的字符","替换为字符")注意:只会替换第一个字符
console.log( bigstr.replace("b","*"));//a*hsbsbdjskbbbb
//将字符转化为数组 split("分隔符")
console.log(bigstr.split(""));// ["a", "b", "h", "s", "b", "s", "b", "d", "j", "s", "k", "b", "b", "b", "b"]
</script>