JavaScript数组对象 , 正则对象 , String对象以及自定义对象介绍

1. Array数组对象

数组对象是使用单独的变量名来存储一系列的值。

1.1创建一个数组

创建一个数组,有三种方法。

【1】常规方式:

let 数组名 = new Array();

在这里插入图片描述

【2】简洁方式: 推荐使用

let 数组名 = new Array(数值1,数值2,...);

在这里插入图片描述

【3】字面:在js中创建数组使用中括号 推荐使用

let 数组名 = [数值1,数值2,...];

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<script type="text/javascript">/*创建数组对象方式一:*/let arr = new Array(10, 1.2, true, '锁哥');//获取数据1.2// console.log(arr[1]);//1 表示数组索引//遍历数组//length 数组数组对象中的属性,表示数组长度/* for (let i = 0; i < arr.length; i++) {//获取数组数据let x = arr[i];console.log(x);}*///采用方式一即上述方式定义数组 let arr = new Array(10, 1.2, true, '锁哥');注意:如果只给一个number类型的值,那么此时数值表示数组长度,数组中的数据都是emptylet arr2 = new Array(5);//报错:Invalid array length 无效的数组长度//采用方式一即上述方式定义数组 let arr = new Array(10, 1.2, true, '锁哥');注意:如果只给一个number类型的值,// 那么此时数值表示数组长度,要求不能给小数,数组长度不能是小数// let arr3 = new Array(1.2);//采用方式一即上述方式定义数组 let arr = new Array(10, 1.2, true, '锁哥');注意:如果只给一个非number类型的值,// 那么此时数值表示数组的元素let arr4 = new Array('2');//向arr数组中存false// arr[4] = false;// console.log(arr[4]);//false//js中的数组长度是可变的//向数组中添加数据// arr[7] = 100;//[10, 1.2, true, '锁哥', empty × 3, 100]console.log(arr.length);//修改前:长度是4//修改数组长度//修改数组长度arr.length = 2;console.log(arr.length);//修改前:长度是2,数据是 10 1.2
</script>
</body>
</html>

小结:

创建数组有三种方式:

1.常规方式:let arr=new Array();

2.简写方式:let arr=new Array(数据1,数据2.。。);

​ 注意:如果小括号中只有一个number类型的值,表示数组长度,不能是小数。

在这里插入图片描述

3.字面:let myCars=[数据1,数据2,数据3,…];

在这里插入图片描述

4.js中的数组定义使用中括号,并且可以存储不同类型的数据

1.2数组的特点

1.js中的数组可以存储不同类型的数据

2.js中的数组长度是可变的

在这里插入图片描述

3.可以使用数组名[索引]操作数组的数据

4.可以使用循环遍历数组

在这里插入图片描述

1.3数组中的函数

方法名功能
concat()用于拼接一个或多个数组
reverse()用于数组的反转
join(separator)用于将整个数组使用分隔符拼接成一个字符串。相当于split()反操作
sort()对数组进行排序,不带参数是按照编码值进行排序。
如果不是按照编码值排序,那么必须指定比较器。
说明:由于字符串都是按照编码值比较大小的,所以也可以将这个方法这样理解使用:
如果要对数字进行排序,必须指定比较器。如果是按字符串进行排序,那么就是无参。
pop()删除并返回数组的最后一个元素
push()添加一个或者多个元素到数组的最后面

【1】代码演示1

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><script type="text/javascript">/*数组中的函数:1.concat()用于拼接一个或多个数组2.reverse()用于数组的反转3.join(separator)用于将整个数组使用分隔符拼接成一个字符串。相当于split()反操作4.pop()删除并返回数组的最后一个元素5.push()添加一个或者多个元素到数组的最后面*///1.concat()用于拼接一个或多个数组//定义数组let a1=[10,20,30];let a2=[1.1,200,false];let a3=['柳岩',3.14,true];//拼接 [10, 20, 30, 1.1, 200, false, "柳岩", 3.14, true]let a4 = a1.concat(a2,a3);//2.reverse()用于数组的反转let a5 = a1.reverse();//[30, 20, 10]  此时a1的数据也是[30, 20, 10],a1和a5共享一个数空间//3.join(separator)用于将整个数组使用分隔符拼接成一个字符串。相当于split()反操作let str = a2.join("_");console.log(str);//1.1_200_false//4.pop()删除并返回数组的最后一个元素console.log(a3.pop());//a3数组的数据是:["柳岩", 3.14]   pop函数返回的是true//5.push()添加一个或者多个元素到数组的最后面a2.push(10,'杨幂');//[1.1, 200, false, 10, "杨幂"]//splice(index,n) 从数组中删除元素  。index表示从哪个索引删除,n表示删除数据个数let arr = [10,20,30,40];arr.splice(1, 2);console.log(arr);</script>
</body>
</html>

【2】代码演示2:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><script type="text/javascript">/*6.sort()对数组进行排序,不带参数是按照编码值进行排序。如果不是按照编码值排序,那么必须指定比较器。说明:由于字符串都是按照编码值比较大小的,所以也可以将这个方法这样理解使用:如果要对数字进行排序,必须指定比较器。如果是按字符串进行排序,那么就是无参。*///定义数组let a1=['kaja','aha','abclaja','0aa','abcde','ahd','AKAJA'];//使用数组对象中的函数对上述数组进行排序a1.sort();//["0aa", "AKAJA", "abcde", "abclaja", "aha", "ahd", "kaja"] 默认是大小升序,按照编码值升序排序let a2=[10,108,2,9,99,34,345,200];/*[10, 108, 2, 200, 34, 345, 9, 99] 这里是按照编码值升序排序*/// a2.sort();/*对上述数组a2进行大小降序排序。分析:这里的需求不是按照编码值排序了,是按照数值大小排序,那么我们在sort函数的参数位置必须传递一个比较器,即匿名函数function(o1,o2){代码}升序:o1 - o2降序:o2 - o1最后结果:[345, 200, 108, 99, 34, 10, 9, 2] 数值大小降序*/a2.sort(function (o1,o2) {return o2 - o1;});</script>
</body>
</html>

小结:

​ 对于排序函数sort如果操作的数组存储的是字符串,那么就是无参的。按照编码值升序排序。

​ 对于排序函数sort如果操作的数组存储的是数值,那么就是有参的。按照大小排序。

a2.sort(function (o1,o2) {//降序排序:o2 - o1return o2 - o1;//[456, 123, 100, 30, 9, 8, 2]});

2. RegExp正则对象(重点)

1.创建正则对象

有两种方式:

【1】方式一

let 正则对象 = new RegExp("正则表达式");

【2】方式二推荐使用

let 正则对象 = /正则表达式/;
说明:这种写法在双斜杠中不用书写引号

注意:

1.方式二在//中直接书写正则表达式,不用书写单引号 ^0-9$

2.在js中由于一些浏览器兼容问题,书写正则符号的时候最好加上边界词:

以什么开始:^

以什么结尾:$

2.验证函数

使用RegExp中的test函数,使用格式:

let result = 正则对象.test(被验证的字符串);说明:如果被验证的字符串满足正则表达式则test函数返回true,否则返回false
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><script type="text/javascript">/*需求:使用正则表达式验证指定的字符串是否满足长度是6.*///1.创建正则对象/*1.在正则表达式中任意字符使用符号: .2.在正则中表示出现的次数:{n,m} 最少出现n次,最多出现m次{n,} 最少出现n次{n} 正好出现n次3.   .{6}  表示正好出现6位任意字符4.  ^  表示以什么开始    $ 表示以什么结尾*/// let reg = new RegExp("^.{6}$");let reg =/^.{6}$/;//2.使用正则对象调用test函数验证字符串let result = reg.test("abj1a9");console.log(result);</script>
</body>
</html>

小结:

1.创建正则表达式对象:

1)let reg = new RegExp('正则表达式');
2)let reg = /正则表达式/;
注意:别忘记在正则表达式中加上边界词:^  表示以什么开始$  表示以什么结尾

2.使用正则调用test函数验证字符串是否满足正则:

  let result = reg.test(字符串);

3.String对象

在js中string属于基本类型(原始数据类型),然后js将其包装成了引用类型(复合数据类型)。

【1】创建String对象方式
1.let txt = new String(“string”); 使用构造方法创建对象 了解
2.let 对象名 = “字符串”; 使用双引号 理解
3.let 对象名 = ‘字符串’; 使用单引号 掌握
4.let 对象名 = 字符串; 使用反单引号(键盘上的波浪线,在esc下面) 掌握 从es6开始的目的是为了简化字符串的拼接

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><script type="text/javascript">/*【1】创建String对象方式:1.let txt = new String("string"); 使用构造方法创建对象 了解2.let 对象名 = "字符串"; 使用双引号 理解3.let 对象名 = '字符串'; 使用单引号 掌握4.let 对象名 = `字符串`; 使用反单引号(键盘上的波浪线,在esc下面) 掌握  从es6开始的目的是为了简化字符串的拼接*///1.let txt = new String("string"); 使用构造方法创建对象 了解let s = new String("柳岩");//s保存地址值console.log(s.toString());//柳岩// 2.let 对象名 = "字符串"; 使用双引号 理解let s1 = "杨幂";console.log(s1);//杨幂//3.let 对象名 = '字符串'; 使用单引号 掌握let s2 = '赵丽颖';console.log(s2);//赵丽颖// 4.let 对象名 = `字符串`; 使用反单引号(键盘上的波浪线,在esc下面) 掌握  从es6开始的目的是为了简化字符串的拼接let i = 10;let s3 = '哈哈' + i + '呵呵';//+是拼接console.log(s3); //哈哈10呵呵//在反单引号中${获取数据的变量名}let s4=`嘿嘿${i}嘻嘻`;//es6的新语法console.log(s4);//嘿嘿10嘻嘻</script>
</body>
</html>

小结:

创建String对象方法:

1.双引号
2.构造方法 了解 let s1=new String("abc");
3.单引号 推荐  let s2='def';
4.反单引号:let s3 = `efg`;注意:使用反单引号主要目的为了方便字符串的拼接,省去了字符串+拼接的麻烦let s3 = `efg`;`${s3}锁哥` 结果是  efg锁哥${变量}这种写法只能书写在反单引号中,${变量}大括号中的变量不一定是反单引号定义的,可以是单引号定义的

4.自定义对象(重要)

  • 格式
let 对象名称 = {属性名称1:属性值1,属性名称2:属性值2,...函数名称:function (形参列表){}...};
  • 代码实现
<!-- 文档类型声明标签,告知浏览器这个页面采取html版本来显示页面 -->
<!DOCTYPE html>
<!-- 告诉浏览器这是一个英文网站,本页面采取英文显示,单也可以书写中文 -->
<html lang="en"><head><!-- 必须书写,告知浏览器以UTF-8编码表编解码中文,如果不书写就会乱码 --><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 标题标签 --><title>Title</title>
</head>
<body>
<script type="text/javascript">/*自定义对象:************************************很重要let 对象名称 = {属性名称1:属性值1,属性名称2:属性值2,...函数名称:function (形参列表){}...};*///自定义对象 person表示对象名let person ={username:"柳岩",age:20,//定义函数eat:function(a){//a=100//在自定义对象的函数中不能直接使用自定义对象中的属性,否则报错:selfObjectDemo06.html:32 Uncaught ReferenceError: username is not defined// console.log(username+"干饭人,干饭魂,a="+a);//使用对象person调用属性名可以获取属性值// console.log(person.username+"干饭人,干饭魂,a="+a);//后期经常使用的方式:这里的this表示当前自定义对象personconsole.log(this.username+"干饭人,干饭魂,a="+a);}};//如果在自定义对象外部获取自定义对象中的属性值,那么格式:对象名.属性名// console.log(person.username);//"柳岩"// console.log(person.age);//20//调用自定义对象中的函数:对象名.函数名(实参);person.eat(100);//干饭人,干饭魂,a=100
</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/38515.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ubuntu 】使用samba配置共享用户home目录和其他具体路径

目录 1 安装samba 2 修改Samba配置文件 3 增加Rose用户的samba帐号 4 重启samba 5 测试 1 安装samba 使用如下命令安装samba&#xff1a; sudo apt-get updatesudo apt-get install samba openssh-server 2 修改Samba配置文件 sudo cp /etc/samba/smb.conf /etc/samba…

试用笔记之-收钱吧安卓版演示源代码,收钱吧手机版感受

首先下载&#xff1a; https://download.csdn.net/download/tjsoft/89499105 安卓手机安装 如果有收钱吧帐号输入收钱吧帐号和密码。 如果没有收钱吧帐号点我的注册 登录收钱吧帐号后就可以把手机当成收钱吧POS机用了&#xff0c;还可以扫客服的付款码哦 源代码技术交流QQ:42…

Docker安装MySQL5

Docker安装MySQL5 前言 MySQL 是一个开源的关系型数据库管理系统&#xff0c;广泛用于各种 Web 应用程序的开发和生产环境中。MySQL 5 是 MySQL 数据库的一个较早版本&#xff0c;虽然不再是最新版本&#xff0c;但仍然被一些项目所使用和支持。 在 Docker 中安装 MySQL 5 可…

Docker 手册

帮助命令 docker 命令 --help镜像命令 docker images (-a所有 &#xff5c; -q只显示容器的ID) docker search 镜像名 docker pull 镜像名&#xff1a;版本号 docker rmi -f ID&#xff5c;镜像名&#xff1a;版本号 // 删除本地一个或多个镜像 docker rmi -f $(docker …

U盘数据恢复实战指南:原因、方案与预防措施

一、引言&#xff1a;U盘数据恢复概述 在数字化时代&#xff0c;U盘作为一种便携式存储设备&#xff0c;广泛应用于个人和企业中。然而&#xff0c;由于各种原因&#xff0c;U盘数据丢失的问题时有发生。U盘数据恢复技术便是在这种情况下应运而生&#xff0c;它帮助用户在数据…

TPS61085非同步650kHz,1.2MHz, 18.5V升压DCDC芯片

1 特点 TPS61085外观和丝印PMKI 2.3 V 至 6 V 输入电压范围 具有 2.0A 开关电流的 18.5V 升压转换器 650kHz/1.2MHz 可选开关频率 可调软启动 热关断 欠压闭锁 8引脚VSSOP封装 8引脚TSSOP封装 2 应用 手持设备 GPS接收器 数码相机 便携式应用 DSL调制解调器 PCMCIA卡 TFT LCD…

MySQL之事务特性ACID、并发事务问题、隔离级别

1、事务特性ACID 原子性&#xff1a;事务是不可分割的最小操作单元&#xff0c;要么全部成功&#xff0c;要么全部失败。一致性&#xff1a;事务完成时&#xff0c;必须使所有数据都保持一致状态。隔离性&#xff1a;数据库系统提供的隔离机制&#xff0c;保证事务在不外部并发…

Java并发编程基础知识点

目录 Java并发编程基础知识点1、线程&#xff0c;进程概念及二者的关系进程相关概念线程相关概念进程与线程的关系补充小知识点&#xff1a; 2、线程的状态Java线程的状态&#xff1a;Java线程不同状态之间的切换图示 3、Java程序中如何创建线程&#xff1f;①、继承Thread类②…

2024年华为OD机试真题-传递悄悄话 -C++-OD统一考试(C卷D卷)

2024年OD统一考试(D卷)完整题库:华为OD机试2024年最新题库(Python、JAVA、C++合集) 题目描述: 给定一个二叉树,每个节点上站着一个人,节点数字表示父节点到该节点传递悄悄话需要花费的时间。 初始时,根节点所在位置的人有一个悄悄话想要传递给其他人,求二叉树所有节…

【漏洞复现】用友NC——文件上传漏洞

声明&#xff1a;本文档或演示材料仅供教育和教学目的使用&#xff0c;任何个人或组织使用本文档中的信息进行非法活动&#xff0c;均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 用友NC是由用友公司开发的一套面向大型企业和集团型企业的管理软…

贵不一定好,申请SSL证书一定要找到合适自己的

SSL&#xff08;Secure Sockets Layer&#xff09;的主要作用是保护网络中的数据传输过程安全可靠。通过使用加密技术&#xff0c;SSL在客户端和服务器之间建立一条安全通道&#xff0c;确保敏感数据在网络上传输时不易被窃听、篡改或伪造. 例如&#xff1a;阿里云 目前SSL证…

C语言 | Leetcode C语言题解之第207题课程表

题目&#xff1a; 题解&#xff1a; bool canFinish(int numCourses, int** prerequisites, int prerequisitesSize, int* prerequisitesColSize) {int** edges (int**)malloc(sizeof(int*) * numCourses);for (int i 0; i < numCourses; i) {edges[i] (int*)malloc(0);…

SQL中使用IF语句实现条件判断

SQL中使用IF语句实现条件判断 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨在SQL中如何使用IF语句进行条件判断。IF语句在SQL中是一种强大…

【Linux】部署NFS服务实现数据共享

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;CSDN博客专家   &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01…

Python基础总结之isinstance()

Python基础总结之isinstance() 在Python中&#xff0c;isinstance() 是一个非常有用的内置函数&#xff0c;用于判断一个对象是否是一个已知的类型。这个函数在处理继承和多态时特别有用&#xff0c;因为它会考虑继承关系。 技术介绍 isinstance() 函数的基本语法如下&#xf…

4-数据提取方法2(xpath和lxml)(6节课学会爬虫)

4-数据提取方法2&#xff08;xpath和lxml&#xff09;&#xff08;6节课学会爬虫&#xff09; 1&#xff0c;Xpath语法&#xff1a;&#xff08;1&#xff09;选择节点&#xff08;标签&#xff09;&#xff08;2&#xff09;“//”:能从任意节点开始选择&#xff08;3&#xf…

ArcGIS Pro SDK (七)编辑 7 操作Blob字段

ArcGIS Pro SDK &#xff08;七&#xff09;编辑 7 操作Blob字段 目录 ArcGIS Pro SDK &#xff08;七&#xff09;编辑 7 操作Blob字段1 使用属性检查器读取和写入 Blob 字段2 在回调中使用行游标读取和写入 Blob 字段 环境&#xff1a;Visual Studio 2022 .NET6 ArcGIS Pro…

计算机网络面试TCP篇之TCP三次握手与四次挥手

TCP 三次握手与四次挥手面试题 任 TCP 虐我千百遍&#xff0c;我仍待 TCP 如初恋。 巨巨巨巨长的提纲&#xff0c;发车&#xff01;发车&#xff01; PS&#xff1a;本次文章不涉及 TCP 流量控制、拥塞控制、可靠性传输等方面知识&#xff0c;这些知识在这篇&#xff1a; TCP …

第3章:数据结构

树 对稀疏矩阵的压缩方法有三种&#xff1a; 1、三元组顺序表 2、行逻辑连接的顺序表 3、十字链表 同义词才会占用同个位置&#xff0c;从而需要进行多次比较。这些关键字的第一个可以不是e的同义词&#xff0c;可以是排在e之前的关键字正好占了那个位置。 Dijkstra算法主要特点…

何处理Java中的ZipException异常?

如何处理Java中的ZipException异常&#xff1f; 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在Java编程中&#xff0c;处理压缩文件&#xff08;如ZIP文件…