# 内置对象
内置对象就是指 JS 语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的 API
JS 中提供了多个内置对象,如:Math,Date,Array,String 等
# 查询 MDN 文档
MDN Web Docs (mozilla.org)
# Math 对象
# 概述
Math 对象不是构造函数,它具有数学常数和函数的属性和方法,跟数学相关的运算,可以使用 Math 中的成员
# 常用方法
| Math.PI |
| Math.floor() |
| Math.ceil() |
| Math.round() |
| Math.abs() |
| Math.max() |
| Math.min() |
# 随机数方法 random
Math.random() 函数返回一个浮点数,伪随机数在范围从 0 到小于 1,也就是说,从 0(包括 0)往上,但是不包括 1(排除 1),然后您可以缩放到所需的范围。实现将初始种子选择到随机数生成算法;它不能被用户选择或重置
| function getRandomArbitrary(min, max) { |
| return Math.random() * (max - min) + min; |
| } |
# 日期对象
# Date 概述
- Date 对象和 Math 对象不一样,他是一个构造函数,所以我们需要实例化之后才能使用
- Date 实例用来处理日期和时间
# Date () 方法的使用
获取当前时间需要实例化
| var now = new Date(); |
| console.log(now); |
Date()
构造函数的参数,可以写成字符串 2019-5-1
,可以写成 new Date('2019-5-1')
或者 new Date('2016/5/1')
# 日期格式化
方法名 |
说明 |
代码 |
getFullYear() |
获取当年 |
dObj.getFullYear() |
getMonth() |
获取当月(0-11) |
dObj.getMonth() + 1 |
getDate() |
获取当天日期 |
dObj.getDate() |
getDay() |
获取星期几(周日 0 到周六 6) |
dObj.getDay() |
getHours() |
获取当前小时 |
dObj.getHours() |
getMinutes() |
获取当前分钟 |
dObj.getMinutes() |
getSeconds() |
获取当前秒钟 |
dObj.getSeconds() |
# 获取日期的总的毫秒形式
Date 对象式是基于 1970 年 1 月 1 日的毫秒数
| var date = new Date(); |
| console.log(date.valueOf()); |
| console.log(date.getTime()); |
| var time = +new Date(); |
| console.log(time); |
| 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-10-5 10:10:00')); |
# 数组对象
# 判断是不是数组
| var arr = []; |
| console.log(arr instanceof Array); |
| console.log(Array.isArray(arr)); |
# 添加删除数组元素
方法名 |
说明 |
返回值 |
push(参数 1 ...) |
末尾添加一个或者多个元素,改变原数组 |
返回新的长度 |
pop() |
删除数组最后一个元素,数组长度减 1 |
返回删除的元素值 |
unshift(参数 1 ...) |
向原数组的开头添加一个或更多元素 |
返回新的长度 |
shift() |
删除数组的第一个元素,数组长度减 1 |
返回第一个元素的值 |
# 数组排序
方法名 |
说明 |
是否修改原数组 |
reverse() |
使数组变为逆序 |
改变原数组,返回新数组 |
sort() |
对数组进行排序 |
改变源数组,返回新数组 |
| var arr = [1,5,9,2,4,8,11]; |
| arr.sort(function(a,b){ |
| return a - b; |
| }); |
| console.log(arr); |
# 数组索引方法
方法明 |
说明 |
返回值 |
indexOf() |
数组中查到给定元素的第一个索引 |
存在返回索引值,不存在返回 - 1 |
lastIndexOf() |
数组中的最后一个索引 |
存在返回索引值,不存在返回 - 1 |
# 数组转换为字符串
方法名 |
说明 |
返回值 |
toString() |
把数组转换成字符串,逗号分隔每一项 |
返回一个字符串 |
join (' 分隔符 ') |
方法用于把数组中的所有元素转换为一个字符串 |
返回一个字符串 |
# 重要方法
方法名 |
说明 |
返回值 |
concat() |
连接两个或者多个数组,不影响源数组 |
返回一个新的数组 |
slice() |
数组截取 slice (begin,end) |
返回被截取项目的新数组 |
splice() |
数组删除 splice (第几个开始,删除个数) |
返回被删除项目的新数组,影响原数组 |
# 字符串对象
# 基本包装类型
为了方便操作基本数组类型,JS 提供了三个特殊的引用类型:String,Number,Boolean
基本包装类型就是把简单数据类型包装成复杂数据类型,这样基本数组类型就有了属性和方法
| var str = 'andy'; |
| console.log('str.length'); |
| |
| var temp = new String('andy'); |
| str = temp; |
| temp = null; |
# 字符串不可变
指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中开辟了一个内存空间
# 根据字符返回位置
方法名 |
说明 |
indexOf (‘要查找的字符’,开始的位置) |
返回指定内容在元字符中的位置,如果找不到就返回 - 1,开始的位置为 index 索引号 |
lastIndexOf() |
从后往前找,只找第一个匹配的 |
# 根据位置返回字符
方法名 |
说明 |
使用 |
charAt(index) |
返回指定位置的字符 (index) |
str.charAt(0) |
charCode(index) |
返回指定位置处字符的 ASCll 码 |
str.charCodeAt(index) |
str[index] |
获取指定位置处的字符 |
HTML5,IE8 + 支持 |
# 字符串操作方法(重点)
方法名 |
说明 |
concat(str1,str3,str3...) |
concat () 方法用于连接多个字符串,拼接字符串 |
substr(start,length) |
从 start 位置开始 (索引号),length 取得个数,重点记 |
slice(start,end) |
从 start 位置开始,截止到 end 位置,end 取不到 |
substring(start,end) |
从 start 开始,截取到 end,end 取不到,不接收负值 |
# 替换字符串和转化数组
| |
| var str = 'baozi'; |
| console.log(str.replace('a','b')); |
| |
| var str = 'red,pink,blue'; |
| console.log(str.split(',')); |