js的对象

  • A+
所属分类:Web前端
摘要

new在执行时会做四件事情:Math对象不是构造函数,它具有数学常数和函数的属性和方法,跟数学相关的运算可以使用Math中的成员。


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在执行时会做四件事情:

  1. 在内存中创建一个新的空对象
  2. 让this指向这个新的对象
  3. 执行构造函数里面的代码,给这个新对象添加属性和方法
  4. 返回这个新对象(所以构造函数里面不需要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相同,但是不接受负值