内置对象
js中的对象分为3种 : 自定义对象、内置对象、浏览器对象
自定义对象和内置对象是JS基础内容,属于ECMAScript
而 浏览器对象属于 JS独有的
内置对象就是JS语言自带的一些对象,提供了一些常用的功能
JS提供的内置对象有 :Math、Date、Array、String等
查文档
到MDN中查询
Math对象
Math 不需要new,直接使用即可,所以它不是一个构造函数
最大值 max
绝对值 abs
取整方式
向下取整 floor
向上取整 ceil
四舍五入 round
注 : -1.5 四舍五入是 -1 ; -1.6 四舍五入是 -2
随机数 random
是返回一个随机的小数,范围是[0,1)
语法结构
random()
function getRan(min,max){
return Math.floor(Math.random() * (max - min + 1 )) + min
}
日期对象 Date
是构造函数,所以必须 使用 new 来调用
用来处理 日期和时间的
new Date()
使用 Date对象
里面没有参数
里面有参数
数字型
注 : 里面返回的 月份要+1
字符串型
格式化日期
年月日
所以 月份要 + 1 ; 日期要 -1
时分秒
总毫秒数
是 从计算机的起始时间 1970年1月1日开始计算的
以下4种方式 都可以获取到
valueOf()
getTime()
+new Date()
Date.now()
倒计时案例
- 获取到当前时间的时间戳
- 获取到未来某个时间的时间戳
- 用未来时间 - 当前时间 等于剩余的时间戳毫秒数
- 毫秒数 / 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) // 秒
数组对象
创建数组
字面量创建
new Array()创建
() 里面没有参数
表示 创建了一个空数组
(一个参数) 里面一个参数
参数是几 就表示数组长度是几,不过里面还是空数组
(多个参数) 里面多个参数
检测是否是数组
instanceof 运算符
Array.isArray(参数) h5新增的
添加数组元素
push 末尾加
注 : arr.push 返回的是 新数组的长度
push 是可以给数组追加新的元素
push() 参数直接写 数组元素就可以了
push 完毕后,返回的结果是 新数组的长度
原数组也会变化
unshift 前面加
unshift 是在数组前面追加新的元素
unshift() 参数直接写 数组元素就可以了
unshift 完毕后,返回的结果是 新数组的长度
原数组也会变化
删除数组元素
pop 删除最后一个
注 : arr.pop 返回的是删除的那一个元素
1、pop 是可以删除数组的最后一个元素,一次只能删除一个元素
2、pop() 里面是不跟参数的
3、pop 删除完毕后,返回的是 删除的那一个元素
4、原数组 发生变化
shift 删除第一个
1、shifit是可以删除数组的第一个元素,一次只能删除一个元素
2、shift() 里面是不跟参数的
3、shift删除完毕后,返回的是 删除的那一个元素
4、原数组 发生变化
数组排序
翻转数组 reverse
数组排序 sort
特殊情况
解决办法
返回数组索引
indexOf(数组元素) 从前面找
找不到返回 -1
lastIndexOf (数组元素) 从后面找
数组去重
就是 删除数组中重复的元素
分析
判断 当前元素是否在新数组中存在,若存在则不push进去 , 不存在也就是indexOf是-1 , 就push进去
数组转为字符串
toString()
join(分隔符)
分割
slice(start,end)
返回一个新的数组 , 原数组不会发生改变
slice(start,end) [start,end)
splice(start,deleteCount,item1,item2,...)
通过 删除或者替换现有元素或者原地添加新元素来修改数组
start : 指定修改的开始位置 ,若超出数组长度,则从数组末尾开始添加内容
deleteCount : 整数,表示要移除的数组元素的个数
若 它大于 start 之后的元素的总数,则 start及后面的元素都删除
item : 要添加进的数组的元素 , 若没有,则只删除元素
1、以数组形式返回被修改的内容
2、会改变原数组
字符串对象
要注意 字符串里面的值都是不可变的,每次其实是新开辟一个新的内存空间
基本包装类型
就是把简单数据类型 包装成为了 复杂数据类型 ; 这样基本数据类型就有属性和方法了
字符串不可变
1. 字符串的不可变
2. 指的是 里面的值不可变, 虽然看上去可以改变内容了,但其实是地址改变了
3. 内存中新开辟了一个内存空间
4. 所以 因为 字符串的不可变 我们不要大量的拼接字符串
indexOf 根据字符查找位置
str.indexOf(要查找的字符,[起始的位置])
根据位置查找字符
charAt(index)
charCodeAt(index) 根据位置返回ASCII码值
字符串名[index] h5新增的
拼接字符串
concat
+
截取字符串
substr('截取的起始位置','截取几个字符')
substring(start,end)
替换字符串 replace('被替换的字符','替换为的字符')
注 : 只会替换出现的第一个的字符
替换多个
利用 indexOf 查找字符 是否是 -1 ; 若不是 则 替换掉