js的对象
js的对象
1. new关键字
// 构造函数的语法格式
function 构造函数名() { // 构造函数名字首字母要大写(规范)
this.属性 = 值;
this.方法 = function() {}
}
new 构造函数名();
// 例子
function Star(uname, age, sex) {
this.name = uname;
this.age = age;
this.sex = sex;
}
new Star('小明', 24, '男');
new在执行时会做四件事情:
- 在内存中创建一个新的空对象
- 让this指向这个新的对象
- 执行构造函数里面的代码,给这个新对象添加属性和方法
- 返回这个新对象(所以构造函数里面不需要return)
2. Math对象
Math对象不是构造函数,它具有数学常数和函数的属性和方法,跟数学相关的运算可以使用Math中的成员。
Math.PI // 圆周率
Math.floor() // 向下取整
Math.cell() // 向上取整
Math.round() // 四舍五入 就近取整 注意-3.5结果是-3
Math.abs() // 绝对值
Math.max() // 最大值
Math.min() // 最小值
3. 数组对象
3.1 检测是否为数组
- instanceof
var arr = [];
var obj = [];
console.log(arr instanceof Array);
console.log(obj instanceof Array);
- Array.isArray(参数),H5新增的方法,支持i9以上版本
console.log(Array.isArray(arr));
console.log(Array.isArray(obj));
3.2 添加、删除数组元素的方法
方法名 | 说明 | 返回值 |
---|---|---|
push(参数......) | 末尾添加一个或多个元素,注意修改原数组 | 并返回新的长度 |
pop() | 删除数组最后一个元素,把数组长度减1,注意修改原数组 | 返回它删除的元素的值 |
unshift(参数......) | 向数组的开头添加一个或更多元素,注意修改原数组 | 并返回新的长度 |
shift() | 删除数组的第一个元素,数组长度减1,注意修改原数组 | 并返回第一个元素的值 |
3.3 数组排序
方法名 | 说明 | 是否修改原数组 |
---|---|---|
reverse() | 颠倒数组中元素的顺序 | 是,返回新数组 |
sort() | 对数组的元素进行排序 | 是,返回新数组 |
3.4 数组索引方法
方法名 | 说明 | 返回值 |
---|---|---|
indexOf() | 数组中查找给定元素的第一个索引 | 存在:返回索引号;不存在:返回-1 |
lastIndexOf() | 数组中查找给定元素的最后一个索引 | 存在:返回索引号;不存在:返回-1 |
3.5 数组转换为字符串
方法名 | 说明 | 返回值 |
---|---|---|
toString() | 把数组转换成字符串,逗号分隔每一项 | 返回一个字符串 |
join('分隔符') | 把数组中的所有元素转换为一个字符串 | 返回一个字符串 |
4. 字符串对象
4.1 基本包装类型
为了方便操作基本数据类型,js还提供了三个特殊的引用类型:String、Number和Boolean。
基本包装类型就是把简单数据类型包装成为复杂数据类型,这样基本数据类型就有了属性和方法。
// 下面代码可以运行的原因是:js会把基本数据类型包装为复杂数据类型
var str = 'hello';
console.log(str.length);
// 过程如下
// 1.生成临时变量,把简单数据类型包装为复杂数据类型
var temp = new String('hello');
// 2.赋值给我们声明的字符变量
str = temp;
// 3.销毁临时变量
temp = null;
4.2 字符串的不可变
指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。
var str = 'hello';
str = 'world';
// 当重新给str赋值的时候,常量'hello'不会被修改,依然在内存中
// 重新给字符串赋值,会重新在内存中开辟空间,这个特点就是字符串的不可变
// 由于字符串的不可变,在大量拼接字符串的时候会有效率问题
4.3 根据字符返回位置
字符串所有的方法,都不会修改字符串本身(因为字符串是不可变的),操作完成会返回一个新的字符串。
方法名 | 说明 |
---|---|
indexOf('要查找的字符',开始的位置) | 返回制定内容在原字符串中的位置,如果找不到就返回-1,开始的位置是index索引号 |
lastIndexOf() | 从后往前找,只找第一个匹配的 |
4.4 字符串操作方法
方法名 | 说明 |
---|---|
concat(str1,str2......) | 用于连接两个或多个字符串,拼接字符串,等效于+,+更常用 |
substr(start,length) | 从start位置开始(索引号),length:取的个数 |
slice(start,end) | 从start开始,截取到end,end取不到 |
substring(start,end) | 从start开始,截取到end,end取不到,基本和slice相同,但是不接受负值 |