13 内置对象 (math 日期 数组 字符串)

183 阅读5分钟

内置对象

js中的对象分为3种 : 自定义对象、内置对象、浏览器对象

自定义对象和内置对象是JS基础内容,属于ECMAScript

而 浏览器对象属于 JS独有的

内置对象就是JS语言自带的一些对象,提供了一些常用的功能

JS提供的内置对象有 :Math、Date、Array、String等

查文档

MDN Web Docs (mozilla.org)

到MDN中查询

Math对象

Math 不需要new,直接使用即可,所以它不是一个构造函数

最大值 max

image.png

绝对值 abs

image.png

取整方式

向下取整 floor

image.png

向上取整 ceil

image.png

四舍五入 round

注 : -1.5 四舍五入是 -1 ; -1.6 四舍五入是 -2

image.png

随机数 random

是返回一个随机的小数,范围是[0,1)

语法结构

random()

image.png

function getRan(min,max){
        return Math.floor(Math.random() * (max - min + 1 )) + min
}

日期对象 Date

是构造函数,所以必须 使用 new 来调用

用来处理 日期和时间的

new Date()

使用 Date对象

里面没有参数

image.png

image.png

里面有参数

数字型

image.png

注 : 里面返回的 月份要+1

image.png

字符串型

image.png

image.png

格式化日期

年月日

image.png 所以 月份要 + 1 ; 日期要 -1

时分秒

image.png

总毫秒数

是 从计算机的起始时间 1970年1月1日开始计算的

以下4种方式 都可以获取到

valueOf()

image.png

getTime()

image.png

+new Date()

image.png

Date.now()

image.png

倒计时案例

  • 获取到当前时间的时间戳
  • 获取到未来某个时间的时间戳
  • 用未来时间 - 当前时间 等于剩余的时间戳毫秒数
  • 毫秒数 / 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)  // 秒

数组对象

创建数组

字面量创建

image.png

new Array()创建

image.png

() 里面没有参数

表示 创建了一个空数组

(一个参数) 里面一个参数

image.png 参数是几 就表示数组长度是几,不过里面还是空数组

(多个参数) 里面多个参数

image.png

检测是否是数组

instanceof 运算符

image.png

Array.isArray(参数) h5新增的

image.png

添加数组元素

push 末尾加

注 : arr.push 返回的是 新数组的长度

push 是可以给数组追加新的元素

push() 参数直接写 数组元素就可以了

push 完毕后,返回的结果是 新数组的长度

原数组也会变化

image.png

unshift 前面加

unshift 是在数组前面追加新的元素

unshift() 参数直接写 数组元素就可以了

unshift 完毕后,返回的结果是 新数组的长度

原数组也会变化

image.png

删除数组元素

pop 删除最后一个

注 : arr.pop 返回的是删除的那一个元素

1pop 是可以删除数组的最后一个元素,一次只能删除一个元素

2pop() 里面是不跟参数的

3pop 删除完毕后,返回的是 删除的那一个元素

4、原数组 发生变化

image.png

shift 删除第一个

1、shifit是可以删除数组的第一个元素,一次只能删除一个元素

2、shift() 里面是不跟参数的

3、shift删除完毕后,返回的是 删除的那一个元素

4、原数组 发生变化

image.png

数组排序

翻转数组 reverse

image.png

数组排序 sort

image.png

特殊情况

image.png

解决办法

image.png

返回数组索引

indexOf(数组元素) 从前面找

找不到返回 -1

image.png

lastIndexOf (数组元素) 从后面找

image.png

数组去重

就是 删除数组中重复的元素

分析

判断 当前元素是否在新数组中存在,若存在则不push进去 , 不存在也就是indexOf是-1 , 就push进去

image.png

数组转为字符串

toString()

image.png

join(分隔符)

image.png

分割

slice(start,end)

返回一个新的数组 , 原数组不会发生改变

slice(start,end)   [start,end)

image.png

splice(start,deleteCount,item1,item2,...)

通过 删除或者替换现有元素或者原地添加新元素来修改数组

start  : 指定修改的开始位置 ,若超出数组长度,则从数组末尾开始添加内容
                    
deleteCount : 整数,表示要移除的数组元素的个数 
              若 它大于 start 之后的元素的总数,则 start及后面的元素都删除
                    
item : 要添加进的数组的元素 , 若没有,则只删除元素
       

image.png

1、以数组形式返回被修改的内容 

2、会改变原数组

字符串对象

要注意 字符串里面的值都是不可变的,每次其实是新开辟一个新的内存空间

image.png

基本包装类型

就是把简单数据类型 包装成为了 复杂数据类型 ; 这样基本数据类型就有属性和方法了

image.png

字符串不可变

1. 字符串的不可变 

2. 指的是 里面的值不可变, 虽然看上去可以改变内容了,但其实是地址改变了

3. 内存中新开辟了一个内存空间

4. 所以 因为 字符串的不可变 我们不要大量的拼接字符串

indexOf 根据字符查找位置

str.indexOf(要查找的字符,[起始的位置])

image.png

根据位置查找字符

charAt(index)

image.png

charCodeAt(index) 根据位置返回ASCII码值

image.png

字符串名[index] h5新增的

image.png

拼接字符串

concat

image.png

+

image.png

截取字符串

substr('截取的起始位置','截取几个字符')

image.png

substring(start,end)

image.png

替换字符串 replace('被替换的字符','替换为的字符')

image.png

注 : 只会替换出现的第一个的字符

替换多个

利用 indexOf 查找字符 是否是 -1 ; 若不是 则 替换掉

image.png

字符串转为数组 split('分隔符')

image.png

大小写

转为大写 toUpperCase()

image.png

转为小写 toLowerCase()

image.png