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

  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相同,但是不接受负值
(0)

相关推荐

  • JavaScript

    简介 JavaScript是一门动态弱类型的解释型编程语言.是可插入 HTML 页面的编程代码,插入 HTML 页面后,可由所有的现代浏览器执行.从而增强页面动态效果,实现页面与用户之间的实时动态的交 ...

  • 20个对JavaScript 开发人员的超级有用的技巧

    2021-09-07 JavaScript 是流行编程语言之一,也是许多开发人员最喜欢的语言之一.你可以用它构建 Web 或移动混合应用程序,甚至是机器人开发学习.该语言对于初学者来说,也不是那么困难 ...

  • Python|检查两个字符串数组是否相等

    前言力扣(LeetCode)是一个全球挚爱的计算成长平台.问题描述给两个字符串数组word1和word2.如果两个数组表示的字符串相同,则返回true,否则,返回false.示例1:输入:word1= ...

  • javascript 数组 对象的一些方法记录

    记录一下常用的数组和对象的一些方法 数组 push() 数组后添加元素 // 作用:把一个元素或多个元素,从数组后面添加到数组里面: // 参数:添加的数据 // 返回:添加后的数组的长度: let ...

  • JavaScript数据类型

    JavaScript数据类型

  • JavaScript的内置对象

    内置对象:对象是由属性和方法组成的,使用点语法访问 一,array数组 1. 特点: 数组用于存储若干数据,自动为每位数据分配下标,从0开始 数组中的元素不限数据类型,长度可以动态调整 动态操作数组元 ...

  • JavaScript——常用内置对象

    JavaScript 中的所有事物都是对象:字符串.数值.数组.函数... 此外I,JavaScript还提供多个内建对象,比如 Array,Date,Math 等等 对象只是带有属性和方法的特殊数据 ...

  • JavaScript 基础四

    遍历对象的属性 for...in 语句用于对数组或者对象的属性进行循环操作. for (变量 in 对象名字) { 在此执行代码 } 这个变量是自定义 符合命名规范 但是一般我们 都写为 k 或则 k ...

  • 「学习笔记」JavaScript基础

    前言 最近一直在跟着黑马教程学习JavaScript内容,遂把这一阶段的学习内容整理成笔记,巩固所学知识,同时也会参考一些博客,书籍上的内容,查漏补缺,给自己充充电

  • WEB前端第三十四课——js事件对象this、event

    WEB前端第三十四课——js事件对象this、event

  • Js数组对象中每一项值value相加

    假设有这么一条数据 const data = [ { "15日": 0, "27日": 0, "13日": 0, "25日&quo ...

  • JS遍历对象的几种方法

    几天前一个小伙伴问我 Object.getOwnPropertyNames() 是干什么用的 平时还真没有使用到这个方法,一时不知如何回答 从方法名称来分析,应该是返回的是对象自身属性名组成的数组 那 ...

  • [js] 第78天 举例说明数组和对象的迭代方法分别有哪些?

    今日试题: 举例说明数组和对象的迭代方法分别有哪些? 此开源项目四大宗旨:勤思考,多动手,善总结,能坚持 <论语>,曾子曰:"吾日三省吾身"(我每天多次反省自己). 前 ...

  • [js] 第71天 说说你对深浅拷贝的理解?并实现一个对数组和对象深拷贝的方法

    今日试题: 说说你对深浅拷贝的理解?并实现一个对数组和对象深拷贝的方法 此开源项目四大宗旨:勤思考,多动手,善总结,能坚持 <论语>,曾子曰:"吾日三省吾身"(我每天多 ...

  • JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法

    avaScript hasOwnProperty() 方法是 Object 的原型方法(也称实例方法),它定义在 Object.prototype 对象之上,所有 Object 的实例对象都会继承 h ...

  • js 前端词典对象的属性和值读取

    通常服务端返回比较奇葩的数据对象,不知道该怎么将这个对象转换为可用实体,想了很久,突发奇想想到了这么个方法. 需求是这样:企业有多个产品,产品有分为很几个种类.服务端有获取产品的接口,和单独获取产品种 ...

  • js如何将xxxx年xx周字符串转化为时间对象

    今天在项目中遇到需要天.周.月的时间字符串转化为时间对象,例如:2020-01-01.2020年第01周.2020-01 具体需求如图,点击数据点时需要从对应的横坐标提取时间实现数据钻取.查看详细数据 ...

  • 原生JS内置对象的字符串操作习题

    (一)获取字符串长度 console.log(str.length); // 33 (二)取出指定位置的字符,如:0,3,5,9等 console.log(str[0], str[3], str[5] ...