JavaScript内置对象
1 本节目标
- 说出什么是内置对象
- 根据文档查询指定API的使用方法
- 使用Math对象的常用方法
- 使用Date对象的常用方法
- 使用Array对象的常用方法
- 使用String对象的常用方法
2 内置对象
- JavaScript中的对象分为3种:自定义对象、内置对象、浏览器对象。
- 前面两种对象是JS基础内容,属于ECMAScript;第三个浏览器对象属于JS独有的。
- 内置对象:就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)。
- 内置对象最大的优点就是帮助我们快速开发。
- JavaScript提供了多个内置对象:Math、Date、Array、String等。
3 查文档
3.1 MDN
- 学习一个内置对象的使用,只要学会其常用成员的使用即可,我们可以通过查文档学习,可以通过MDN/W3C来查询。
- Mozilla开发者网络(MDN)提供了有关开放网络技术(Open Web)的信息,包括HTML、CSS和万维网及HTML5应用的API。
- MDN:https://developer.mozilla.org/zh-CN/
3.2 如何学习对象中的方法
- 查阅该方法的功能
- 查看里面参数的意义和类型
- 查看返回值的意义和类型
- 通过demo进行测试
4 Math对象
4.1 Math概述
- Math对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值、取整、最大值等)可以使用Math中的成员。
4.2 随机数方法random()
Math.floor(Math.random() * (max - min + 1)) + min;
5 日期对象
5.1 Date概述
- Date日期对象是一个构造函数,必须使用new来调用创建我们的日期对象,实例化后才能使用。
- Date实例用来处理日期和时间。
5.2 Date()方法的使用
- 获取当前时间必须实例化。
var now = new Date();
console.log(now);
- Date()构造函数的参数:如果括号里面有时间,就返回参数里面的时间。
// 例如:
// 日期格式字符串为'2019-5-1',可以写成:
new Date('2019-5-1')
// 或者
new Date('2019/5/1')
5.3 日期格式化
- 需要获取日期指定的部分,所以我们要手动的得到这种格式。
5.4 获取日期的总的毫秒形式
- Date对象是基于1970年1月1日(世界标准时间)起的毫秒数。
6 数组对象
6.1 数组对象的创建
- 字面量方式
- new Array()
6.2 检测是否为数组
- 检测方法一:
instanceof
运算符 - 检测方法二:
Array.isArray(参数)
6.3 添加删除数组元素的方法
push()
在我们数组的末尾,添加一个或者多个数组元素。
push()
是可以给数组追加新的元素。
push()
参数直接写数组元素就可以了。
push完毕之后,返回的结果是新数组的长度。
原数组也会发生变化。unshift()
在我们数组的前面,添加一个或者多个数组元素。
unshift()
是可以给数组前面追加新的元素。
unshift)
参数直接写数组元素就可以了。
unshift完毕之后,返回的结果也是新数组的长度。
原数组也会发生变化。pop()
可以删除数组的最后一个元素,记住一次只能删除一个元素。
pop()
没有参数。
pop完毕之后,返回的结果是删除的那个元素。
原数组也会发生变化。shift()
可以删除数组的第一个元素,记住一次只能删除一个元素。
shift()
没有参数。
shift完毕之后,返回的结果是删除的那个元素。
原数组也会发生变化。
6.4 数组排序
6.5 数组索引方法
indexOf(数组元素)
作用就是返回该数组元素的索引号(从前往后查找)。indexOf(数组元素)
只返回第一个满足条件的索引号。indexOf(数组元素)
如果在该数组里面找不到元素,则返回-1。lastIndexOf(数组元素)
作用就是返回该数组元素的索引号(从后往前查找)。lastIndexOf(数组元素)
如果在该数组里面找不到元素,则返回-1。
6.6 数组转换为字符串
6.7 自行学习了解
7 字符串对象
7.1 基本包装类型
- 为了方便操作基本数据类型,JavaScript还提供了三个特殊的引用类型:String、Number和Boolean。
- 基本数据类型就是把简单数据类型包装成为复杂数据类型,这样基本数据类型就有了属性和方法。
//下面代码有什么问题?
var str = 'andy';
console.log(str.length);
//按道理基本数据类型是没有属性和方法的,而对象才有属性和方法,但上面代码却可以执行
//这是因为js会把基本数据类型包装为复杂数据类型,其执行过程如下:
// (1)生成临时变量,把简单数据类型包装为复杂数据类型:
var temp = new String('andy');
// (2)把临时变量的值给我们声明的字符变量str
str = temp;
// (3)销毁这个临时变量
temp = null;
7.2 字符串的不可变
- 指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。
7.3 根据字符返回位置
- 字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串。
7.4 ★★根据位置返回字符★★
7.5 ★★字符串操作方法★★
7.6 其他方法
replace('被替换的字符','替换为的字符')
:替换字符split('分隔符')
:字符转换为数组toUpperCase()
:转换大写toLowerCase()
:转换小写