内置对象
内置对象
-
JavaScript 中的对象分为3种:自定义对象 、内置对象、 浏览器对象
-
前面两种对象是JS 基础 内容,属于 ECMAScript; 第三个浏览器对象属于 JS 独有的, JS API 讲解 内置对象就是指 JS 语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而 必要的功能(属性和方法),内置对象最大的优点就是帮助我们快速开发
-
JavaScript 提供了多个内置对象:Math、 Date 、Array、String等
Math对象
- Math 对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值, 取整、最大值等)可以使用 Math 中的成员。
属性、方法名 | 功能 |
---|---|
Math.PI | 圆周率 |
Math.floor() | 向下取整 |
Math.ceil() | 向上取整 |
Math.round() | 四舍五入版 就近取整 注意 -3.5 结果是 -3 |
Math.abs() | 绝对值 |
Math.max() | 最大值 |
Math.min() | 最小值 |
Math.random() | 获取范围在[0,1)内的随机值 |
注意:上面的方法使用时必须带括号
//例:
获取指定范围内的随机整数:
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
日期对象
-
Date 对象和 Math 对象不一样,Date是一个构造函数,所以使用时需要实例化后才能使用其中具 体方法和属性。Date 实例用来处理日期和时间
-
使用Date实例化日期对象
- 获取当前时间必须实例化
var now = new Date();
- 获取指定时间的日期对象
var future = new Date('2019/5/1');
注意:如果创建实例时并未传入参数,则得到的日期对象是当前时间对应的日期对象
- 使用Date实例的方法和属性
方法名 | 说明 | 代码 |
---|---|---|
getFullYear() | 获取当年 | 声明的变量名.getFullYear() |
getMonth() | 获取当月(0-11) | 声明的变量名.getMonth() |
getDate() | 获取当天日期 | 声明的变量名.getDate() |
getDay() | 获取星期几(周日[0]到周六[6]) | 声明的变量名.getDay() |
getHours() | 获取当前小时 | 声明的变量名.getHours() |
getMinutes() | 获取当前分钟 | 声明的变量名.getMinutes() |
getSeconds() | 获取当前秒钟 | 声明的变量名.getSeconds() |
- 通过Date实例获取总毫米数
- 总毫秒数的含义:基于1970年1月1日(世界标准时间)起的毫秒数
- 获取总毫秒数
// 实例化Date对象
var now = new Date();
// 1. 用于获取对象的原始值
console.log(now.valueOf())
console.log(now.getTime())
// 2. 简单写可以这么做
var now = + new Date();
// 3. HTML5中提供的方法,有兼容性问题
var now = Date.now();
数组对象
- 检测是否为数组:instanceof
- instanceof可以判断一个对象是否是某个构造函数的实例
var arr = [1, 23];
var obj = {};
console.log(arr instanceof Array); // true
console.log(obj instanceof Array); // false
- 添加删除数组元素的方法
方法名 | 说明 | 返回值 |
---|---|---|
push(参数1,…) | 末尾添加一个或多个元素,注意修改原数组 | 并返回新的长度 |
pop() | 删除数组的最后一个元素,把数组的长度减1 无参数、修改原数组 | 返回它删除的元素的值 |
unshift() | 向数组的开头添加一个或更多元素,注意修改原数组 | 并返回新的长度 |
shift() | 删除数组的第一个元素,数组长度减1 无参数、修改原数组 | 并返回第一个元素的的值 |
注意:push、unshift为增加元素方法;pop、shift为删除元素的方法
- 数组排序
方法名 | 说明 | 是否修改原数组 |
---|---|---|
reverse() | 颠倒数组中元素的顺序、无参数 | 该方法会改变原来的数组 返回新数组 |
sort() | 对数组的元素进行排序 | 该方法会改变原来的数组 返回新数组 |
注意:sort方法需要传入参数来设置升序、降序排序
- 如果传入“function(a,b){ return a-b;}”,则为升序
- 如果传入“function(a,b){ return b-a;}”,则为降序
- 数组索引方法
方法名 | 说明 | 返回值 |
---|---|---|
indexOf() | 数组中查找给定元素的第一个索引 | 如果存在返回索引号 如果不存在,则返回-1 |
lastindexOf() | 在数组中的最后一个的索引 | 如果存在返回索引号 如果不存在,则返回-1 |
- 数组转换为字符串
方法名 | 说明 | 返回值 |
---|---|---|
toString() | 把数组转换成字符串,逗号分隔每一项 | 返回一个字符串 |
join(‘分隔符’) | 把数组中的所有元素转换为一个字符串 | 返回一个字符串 |
注意:join方法如果不传入参数,则按照 “ , ”拼接元素
方法名 | 说明 | 返回值 |
---|---|---|
concat() | 连接两个或多个数组 不影响原数组 | 返回一个新的数组 |
slice() | 数组截取 slice(begin,end) | 返回呗截取项目的新数组 |
splice() | 数组删除 splice(第几个开始,要删除的个数) | 返回呗删除项目的新数组 这个会影响原数组 |
字符串对象
-
基本包装类型:为了方便操作基本数据类型,JavaScript 还提供了三个特殊的引用类型:String、Number和 Boolean。(基本包装类型就是把简单数据类型包装成为复杂数据类型,这样基本数据类型就有了属性和方法。)js 会把基本数据类型包装为复杂数据类型,
-
字符串的不可变
- 指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存 空间。
- 当重新给字符串变量赋值的时候,变量之前保存的字符串不会被修改,依然在内存中重新给字符串 赋值,会重新在内存中开辟空间,这个特点就是字符串的不可变。
- 由于字符串的不可变,在大量拼接字符串的时候会有效率问题
- 根据字符串返回位置
方法名 | 说明 |
---|---|
indexOf(要查找的字符,开始的位置) | 返回指定内容在原字符串中的位置,如果找不到就返回-1,开始的位置是index索引号 |
lastindexOf() | 从后往前找,只找第一个匹配的 |
- 根据位置返回字符串
方法名 | 说明 | 使用 |
---|---|---|
charAt(index) | 返回指定位置的字符(index字符串的索引号) | str.charAt(0) |
charCodeAt(index) | 获取指定位置处的ASCII码(index索引号) | str.charCodeAt(0) |
str[index] | 获取指定位置处字符 | HTML5,IE8+支持和charAt()等效 |
上述方法中,charCodeAt方法返回的是指定位置上字符对应的ASCII码
- 字符串操作方法
方法名 | 说明 |
---|---|
concat(str1,str2,str3,…) | concat()方法用于连接两个或多个字符串。拼接字符串,等效于+,+更常用 |
substr(start,length) | 从start位置开始(索引号),length取的个数 |
slice(start,end) | 从start位置开始,截取到end位置,end取不到(他们俩都是索引号) |
substring(start,end) | 从start位置开始,截取到end位置,end取不到 和slice相同但是不能是负值 |
- replace()方法:用于在字符串中用一些字符替换另一些字符
//字符串.replace(被替换的字符串,要替换的字符串)
- split():用于切分字符串,它可以将字符串切分为数组。在切分完毕之后,返回的是一个新数 组。
//字符串.split("分割字符")