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,一经查实,立即删除!

相关文章

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

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

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…

Java并发编程基础知识点

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

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

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

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);…

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

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

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…

计算机网络面试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算法主要特点…

jenkins 发布服务到 windows服务器

1.环境准备 1.1 这些就不过多描述了&#xff0c;可以参考我的另一盘文章部署到linux。 jenkins 发布服务到linux服务器-CSDN博客 1.2 需要再windows上安装openssh 地址&#xff1a;Releases PowerShell/Win32-OpenSSH GitHub 到windows上执行安装&#xff0c;可以里面cmd命令…

Java的限制序列化和常用IO流

一.限制序列化 a.问题 出于安全考虑&#xff0c;对于一些比较敏感的信息(如用户密码)&#xff0c;应限制被序列化&#xff0c;如何实现? ◆使用transient关键字修改不需要序列化的对象属性 b.示例 ◆希望Person类对象中的年龄信息不被序列化 二.Java常用IO流有哪些&#x…

人脸特征68点识别 C++

1、加载一张图片 main函数&#xff1a; cv::Mat img cv::imread("5.jpg");vector<Point2f> points_vec dectectFace68(img);2、人脸68特征识别函数 在这里vector<Point2f> dectectFace68(Mat src) {vector<Point2f> points_vec;int* pResults …

【SpringCloud】Eureka源码解析 上

Eureka是一个服务发现与注册组件&#xff0c;它包含服务端和客户端&#xff0c;服务端管理服务的注册信息&#xff0c;客户端简化服务实例与服务端的交互。我们结合源码来分析下eureka组件的实现原理&#xff0c;内容分为上下两章&#xff0c;第一章分析eureka的服务注册&#…

ubuntu apt命令 出现红色弹框 Daemons using outdated libraries

1. 弹框没截图&#xff0c;是因为ubuntu22.04一个新特性导致的&#xff0c;由 needrestart 命令触发&#xff0c;默认情况是交互性质的&#xff0c;也就是会中断在这里需要手动要处理提示。 2. 修改/etc/needrestart/needrestart.conf 文件&#xff0c;将 #$nrconf{restart} …

大数据开发中如何计算用户留存及SQL示例

在大数据开发领域&#xff0c;用户留存是一个关键指标&#xff0c;它反映了产品吸引并保留用户的能力。 留存率的计算不仅有助于评估产品的健康状况&#xff0c;还能为产品优化和市场策略提供重要依据。 本文将详细介绍如何在大数据开发中计算用户留存&#xff0c;并附带具体…

精密空气加热器负载组

小型便携式 &#xff1a;精密空气加热器&#xff08;负载组&#xff09;能够对数据中心热通道/冷通道冷却系统进行全面测试。EAK 是一款 19 英寸机架式设备&#xff08;10U 高&#xff09;&#xff0c;可轻松安装到各种标准服务器机架中。通过集成可调节的热量水平&#xff08;…

C++ :lambda表达式

目录 lambda表达式书写格式&#xff1a; lambda表达式各部分说明&#xff1a; lambda的使用示范&#xff1a; 注意事项&#xff1a; 返回值类型可以省略&#xff0c;参数也可也省略&#xff1a; sort内部也可以直接写lambda表达式&#xff1a; 排序时利用lambda进行排序…

STM32MP135裸机编程:使用软件触发硬件复位

0 参考资料 STM32MP13xx参考手册.pdf 1 使用寄存器实现软件复位 1.1 复位电路概述 重点关注下面标红的路线&#xff1a; 通过这条路线可以清楚看到&#xff0c;我们可以通过设置RCC_MP_GRSTCSETR寄存器让RPCTL&#xff08;复位脉冲控制器&#xff09;给NRST&#xff08;硬件复…

苹果可能与谷歌合作推AI订阅服务;全国首个司法审判大模型在深圳上线

&#x1f989; AI新闻 &#x1f680; 苹果可能与谷歌合作推AI订阅服务 摘要&#xff1a;苹果宣布将与OpenAI合作推出Apple Intelligence&#xff0c;并有望在今年秋季与谷歌达成合作&#xff0c;接入Gemini。Meta的Llama因质量不佳被拒。苹果计划推出订阅模式的智能功能服务&…