JS-内置对象(Math对象/Date对象/数组对象的使用/字符串对象的使用)

内置对象

1.内置对象:

2.根据文档查询到指定API的使用方法:MDN网站

3.Math对象的使用方法

4.Date对象的使用方法

5.Array数组对象的使用方法

(1)数组对象的两种创建方法:

(2)检测参数是否为数组的两种方法:

(3)添加删除数组元素

(4)数组排序

(5)数组索引方法

(6)将数组转换为字符串的方法

6.String对象的使用方法

(1)基本包装类型

(2)字符串不可变

(3)根据字符串返回位置

(4)根据位置返回字符

(5)字符串操作方法(!important)

(6)替换字符串的方法

(7)字符转换为数组的方法


内置对象

1.内置对象:

JS中对象:自定义对象 内置对象 浏览器对象(js独有的)

内置对象:js语言自带的一些对象,这些对象供开发者使用,并提供了一些最基本必要的功能

2.根据文档查询到指定API的使用方法:MDN网站

3.Math对象的使用方法

(1)math不是构造函数,不需要new调用,直接使用

(2)Math - JavaScript | MDN

(3)Math.max(1,2,3,4,5):比较最大值,存在非数字类型的值时返回NaN,不存在值时返回-infinity

封装对象:

var myMath = {
    PI:3.14;
    max:function(){
        var max = arguments[0];
        for(var i = 1;i<arguments.length;i++){
            if(max<arguments[i]){
                max=arguments;
            }    
        }
    return max
    }
    min:function(){
        var min = arguments[0];
        for(var i = 1;i<arguments.length;i++){
            if(min>arguments[i]){
                min=arguments;
            }    
        }
    }
    return min

}
console.log(myMath.PI);
console.log(myMath.max(1,2,3,4,5));
console.log(myMath.min(1,2,3,4,5));

Math.abs():绝对值,输入结果为字符串型的数字,会发生隐式转换,输出绝对值;

Math.floor():向下取整

Math.ceil():下上取整

Math.round():就近取整 .5向大方向取 -1.5=>-1

Math的随机数方法:Math.random返回随机浮点数,[0,1),方法中没有参数

两个数之间的整数:[min,max]之间随机数:

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 = ['001','002','003','004','005'];
console.log(arr[getRander(0,arr.length-1)])

猜数字:

function getRandom(min,max){
    return Math.floor(Math.random()*(max-min+1))+min
}
var random = getRandom(0,10)
while(true){
    var num = prompt('猜数字');
    if(num > random){
        alert("猜大了")
    }else if(num < random){
        alert("猜小了")
    }else{
        alert("猜对了")
        break;
    }
}

4.Date对象的使用方法

处理日期和时间,Date对象基于1970.01.01起的毫秒Date - JavaScript | MDN

注意:Date是一个构造函数,必须使用new来调用创建我们的日期对象,以常规函数调用它将返回一个字符串,而不是一个日期对象,Date对象没有字面量格式.

(1)使用Date,没有参数,返回当前日期时间

var date = new Date();
console.log(date)

(2)参数写法:数字型:2022,02,22,字符串型: "2022-02-22 02:02:02"

var date1 = new Date(2022,02,02);
console.log(date1);
var date2 = new Date('2022-02-02 02:02:02')
console.log(date2);

(3)格式化日期和时间

getFullYear():获取当年        getMonth():获取当月(0--11)        getDate():获取当天日期

getDay():获取星期(周日为0,周六为6)      

getHours():获取当前小时        getMinutes():获取当前分钟        getSeconds():获取当前秒钟

注意:使用时console.log(getMonth()+1)

输出星期:

var date = new Date();
var arr = ['星期1',星期2',星期3',星期4',星期5',星期6',星期日'];
var day = date.getDay()
console.log(arr(day))

输出时间(补0操作):

function getTime(){
    var time = new Date();
    var hour = time.getHours();
    hour = hour<10?'0'+hour:hour
    var minute = time.getMinutes();
    minute = minute<10?'0'+minute:minute
    var second = time.getSeconds();
    second = second<10?'0'+second:second
    return hour + ':' + minute + ':' + second
}
console.log(getTime());

(4)获取日期的总毫秒形式(时间戳)

1970-01:01(世界标准时间)至现在时间的总毫秒数

  • 通过valueOf() 或者 getTime()
var date = new Date();
console.log(date.getTime());
console.log(date.valueOf());
  • +new Date()返回的就是总毫秒数
var date1 = +new Date();
console.log(date1)
  • H5 新增  Date.now()获得总毫秒数
console.log(Date.now())

案例:倒计时:利用时间戳

计算天数:d =  parseInt(时间戳/60/60/24)

计算小时:h = parseInt(时间戳/60/60%24)

计算分钟:m = parseInt(时间戳/60%60)
计算当前秒数:s = parseInt(时间戳%60)

function countDown(time){
    var nowTime = +new Date();//返回当前时间戳
    var inputTime = +new Date(time);//返回输入时间戳
    var times = (inputTime - nowTime)/1000//剩余时间秒数
    var d =  parseInt(times/60/60/24)
    d = d<10?'0'+d:d;
    var h = parseInt(times/60/60%24)
    h = <10?'0'+h:h;
    var m = parseInt(times/60%60)
    m = m<10?'0'+m:m;
    var s = parseInt(times%60)
    s = s<10?'0'+s:s;
    return d + '天' +h+ '时' + m + '分' + s + '秒'
}
console.log(countDown('2022-04-20 20:20:20'))
var date = new Date();
console.log(date)

5.Array数组对象的使用方法

(1)数组对象的两种创建方法:

  • new Array()

var arr = new Array();//长度为0的空数组

var arr = new Array(5);//长度为5的空数组,每个元素都为empty

var arr = new Array(1,2);//长度为2,元素依次为1,2的数组

  • 字面量的方式

var arr = [1,2,3,4,5];

(2)检测参数是否为数组的两种方法:

  • instanceof 运算符,检测参数是否为数组,返回值为true/false

var arr = []        consloe.log(arr instanceof Array) //输出true

var obj = []        consloe.log(obj instanceof Array) //输出false

  • Array.isArray用于确定传递的师傅是一个Array,H5新增

console.log(Array.isArray(arr))//true

console.log(Array.isArray(obj))//false

注意:当检测array实例时,Array.isArray优先于instanceof

(3)添加删除数组元素

添加数组元素:

push(参数1,...)数组末尾添加一个或多个元素,注意修改原数组,返回值: 返回新的长度

unshift(参数1,...)数组开头添加一个或多个元素,注意修改原数组,返回值:返回一个新的长度

删除数组元素:

pop():删除数组末尾最后一个元素,数组长度减一,修改原数组,返回值:返回被删除的元素的值

shift():删除数组开头第一个元素,数组长度减一,修改原数组,返回值:返回被删除元素的值

var arr = [1,2,3,4,5];
//push末尾添加元素
console.log(arr.push('push'));//输出新数组长度6
arr.push(6)
console.log(arr); //[1,2,3,4,5,6]
//unshift头部添加元素
console.log(arr.push('unshift'));//输出新数组长度7
arr.push(7)
console.log(arr); //[7,1,2,3,4,5,6]
//pop末尾删除数组的一个元素
console.log(arr.pop()) //输出6 末尾第一个被删除的数为6
arr.pop();
consloe.log(arr) //输出[7,1,2,3,4,5]
//shift头部删除数组的一个元素
console.log(arr.shift()) //输出6 末尾第一个被删除的数为6
arr.shift();
consloe.log(arr) //输出[1,2,3,4,5]

(4)数组排序

翻转数组reverse():颠倒数组中元素的顺序,无参数,改变原来的数组返回新数组

数组排序sort():冒泡排序,单独使用对number数据最高位排序,对数组元素纪念性排序,改变原来的数组返回新数组

sort()方法搭配函数固定使用:

arr.sort(function(a,b){
    return a-b //升序的顺序冒泡排序
    return b-a //降序的顺序冒泡排序
});
console.log(arr)

var arr = [1,2,3,4,5];
arr.reverse();
console.log(reverse) //输出:[5,4,3,2,1]
arr.sort(function(a,b){
    return a-b //升序的顺序冒泡排序
    return b-a //降序的顺序冒泡排序
});
console.log(arr)

(5)数组索引方法

indexOf(数组元素):数组中查找元素的第一个索引,如果存在则返回索引号,如果不存在则返回-1;

lastIndexOf():在数组中的最后一个的索引,如果存在则返回索引号,如果不存在则返回-1;

注意:indexOf从前往后查找元素,只返回第一个满足条件的索引号,不存在寻找的元素返回-1;

        lastIndexOf从后往前查找元素,只返回第一个满足条件的索引号,不存在寻找的元素返回-1;

var arr = [0,1,2,3,4,5,0]
console.log(arr.indexOf(0)) //输出0 索引号为0
console.log(arr.lastIndexOf(0)) //输出6 从后往前查找为

数组去重:

核心算法:遍历旧数组,用旧数组的元素去查询新数组,新数组中不存在就添加到新数组中

function unique(arr){
    var newArr = [];
    for(var i = 0;i<arr.length;i++){
        if(newArr.intanceOf(arr[i]) === -1){
            newArr.push() = arr[i]
        }
    return newArr;
    }
}
console.log(unique(['a','b','a','b','b','c','d','e','f','f']))

(6)将数组转换为字符串的方法

toString():        console.log(arr,toString())

join('分隔符'):默认为逗号分隔符,console.log(arr.join())     console.log(arr.join("--"))等

6.String对象的使用方法

(1)基本包装类型

var str = 'aaaa';        console.log(str.length) //输出4

将简单数据类型包装成复杂数据类型,这样基本数据类型就有了属性和方法,过程:

将简单数据类型包装成复杂数据类型,创建临时变量 temp : var temp = new String('aaaa');

把临时变量的值给str : str =  temp

销毁这个临时变量 temp = null

(2)字符串不可变

指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址改变了,内存中重新开辟了一个空间

因为字符串不可变性,所以不要大量拼接字符串,会导致内存变慢

所以:字符串中所有的方法都不会修改字符串本身

(3)根据字符串返回位置

indexOf :根据字符返回位置,str.indexOf('查找的字符',起始位置number型)

var str = '字符串对象,字符串对象';
console.log(str.indexOf('串')) //输出3
console.log(str.indexOf('串',3)) //输出8

lastIndexOf() : 从后往前查找,只查找第一个匹配的

(4)根据位置返回字符

charAt(索引号):返回指定位置的字符,str.charAt(4)

var str = '字符串对象,字符串对象';
console.log(str.charAt(3)) // 输出 串
//遍历字符串所有字符
for(var i = 0;i<str.length;i++){
    console.log(str.charAt(i))
}

charCodeAt(索引号):获取指定位置出字符串的ASCII码,str.charCodeAt(6) 判断用户按下了哪个键

str[索引号]: 获取指定位置除字符, H5新增 str[9]

案例:统计字符串中出现最多的字符,并统计其次数

核心算法:利用charAt()遍历字符串,把每个字符存储给对象,没有该属性为1,存在该属性则+1,遍历对象,得到最大值和对应的字符

var str = 'aaaaabbbbccccddddd';
var o = {}
for(var i = 0;i<str.length;i++){
    var chars = str.charAt(i)
    if(o.chars){
        o.chars+=1;    
    }else{
        o.chars = 1
    }
}
console.log(o) // 存储了每一个字符的对象
//遍历对象
var max = 0;
var ch = "";
for(var k in o){
    //k得到的是属性名
    //o[k]得到属性值
    if(o[k]>max){
        max = o[k]
    }
}
console.log(max)
console.log(ch)
console.log('最多次数的字符是' + 'ch' + ',' + "次数为" + max)

(5)字符串操作方法(!important)

拼接字符串:

concat(str1,str2,str3...): 用于连接两个或多个字符串,拼接字符串,等效于+.+更常用;

截取字符串:

substr(start,length): 从str位置开始(索引号),length表示取的个数,(import)

str.substr(a,b) : 从索引号为a的位置开始,截取长度为b的字符串

slice(start,end):从start位置开始,截取到end位置,end位置字符取不到.不接受负值,其余与slice相同

var str = 'aaaabbbb'
console.log(str.concat('cccc')) //输出 aaaabbbbcccc
console.log(str.substr(2,4)) //输出 aaab

(6)替换字符串的方法

replace( "被替换的字符" , "替换后的字符" ),注意:被替换字符有相同多个时,只会替换第一个字符

(7)字符转换为数组的方法

split(" 转换符 "):将字符转换为数组        <=>        join:将数组转换为字符

var str1 = 'aaa,bbb,ccc'
console.log(str.split(" , ")) //输出[aa,bbb,ccc]
var str2 = 'aaa&&bbb&&ccc'
console.log(str.split(" && ")) //输出[aa,bbb,ccc]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值