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

news2024/11/18 10:20:00

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类型的值,那么此时数值表示数组长度,数组中的数据都是empty
    let 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 - o1
        return 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表示当前自定义对象person
        console.log(this.username+"干饭人,干饭魂,a="+a);
      }
    };
    //如果在自定义对象外部获取自定义对象中的属性值,那么格式:对象名.属性名
    // console.log(person.username);//"柳岩"
    // console.log(person.age);//20
    //调用自定义对象中的函数:对象名.函数名(实参);
    person.eat(100);//干饭人,干饭魂,a=100
</script>
</body>
</html>

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

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

相关文章

同城跑腿帮买帮取

同城跑腿&#xff1a;便捷生活新选择 &#x1f680; 快速送达&#xff0c;同城跑腿让生活更便捷 在快节奏的现代生活中&#xff0c;时间成为了最宝贵的资源。当我们忙于工作、学习或家庭琐事时&#xff0c;常常会面临一些琐碎却紧急的需求&#xff0c;比如急需送一份文件、取一…

Soul探索未来智能互动模式,人机交互重塑社交元宇宙体验

在当今快速发展的科技领域中,人机交互已成为一个备受关注的话题。随着人工智能和机器学习技术的不断进步,人们与计算机和智能设备之间的互动方式正在发生翻天覆地的变化。这种交互不止局限于键盘和鼠标,更涵盖了语音识别、手势控制、虚拟现实等多种形式。人机交互的创新不仅提高…

使用 c# + vue 制作 DevExpress 报表

theme: smartblue 一、下载 DevExpress 下载地址: https://docs.devexpress.com/XtraReports/400128/product-information/devexpress-reporting-installer 二、创建报表 选择你要放置的文件夹&#xff0c;依次选择 “Add”&#xff0c; “New Item...” 第一次显示时可能没有详…

1993Springboot智能旅游系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot智能旅游系统是一套完善的信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09; 旅游线路 推荐 采用&#xff08;蚁群算法&#x…

三坐标测量机:柔性生产制造中的高精度测量解决方案

柔性生产制造是制造业的核心竞争力之一。它强调生产线的灵活性和适应性&#xff0c;以满足市场对产品多样化和个性化的需求。在当今快速变化的工业环境中&#xff0c;随着消费者对产品个性化和定制化需求的增加&#xff0c;柔性生产制造和三坐标测量机的结合&#xff0c;为智能…

服务器数据恢复—EVA存储RAID管理信息丢失的数据恢复案例

意外断电导致raid硬件损坏或者riad管理信息丢失等raid模块损坏而导致数据丢失的情况非常普遍。正常情况下&#xff0c;磁盘阵列一旦创建完成就不会再对管理模块中的信息进行更改&#xff0c;但是raid管理模块中的信息属于可修改信息&#xff0c;一次或多次的意外断电可能会导致…

猫头虎 Gemma和Gemini模型的区别是什么?

猫头虎 &#x1f42f; Gemma和Gemini模型的区别是什么&#xff1f; 摘要&#x1f4d8; 在这篇文章中&#xff0c;我们将深入探讨Gemma和Gemini这两个由Google开发的AI模型。我们会对比它们的参数规模、计算资源需求和集成难度&#xff0c;帮助大家了解这两者之间的主要区别。…

Spring两大核心思想 IoC和AoP

目录 ✨ 一、什么是IoC 1、定义 &#x1f38a; 2、IoC思想 &#x1f38a; 3、优势 &#x1f38a; 4、对象的管理 &#x1f38a; 存对象&#xff1a;Component 取对象&#xff1a;AutoWired ✨二、什么是DI 1、定义 &#x1f38a; 2、IoC和DI的关系&#x1f38a; 可…

广东行政职业学院数据智能订单班开班暨上进双创工作室签约仪式圆满结束

为响应教育领域数字化与智能化浪潮这一变革&#xff0c;给学生提供更好的教育资源和实践机会&#xff0c;6月27日&#xff0c;“泰迪广东行政职业学院数据智能订单班开班仪式暨上进双创工作室签约授牌”在广东行政职业学院举行。广东行政职业学院智慧政务学院&#xff08;电子信…

JAVA里的object类

public static String toString(Object o) // 获取对象的字符串表现形式 public static boolean equals(Object a, Object b) // 比较两个对象是否相等 public static boolean isNull(Object obj) // 判断对象是否为null pu…

数据库断言-数据库连接池

原因&#xff1a;现在的代码是单线程&#xff0c;如果遇到大并发的话就会崩溃&#xff0c;数据库查询就查不过来 措施&#xff1a;需要建立数据库连接池&#xff0c;可以设置连接池的数量 什么是大并发&#xff1a;很多客户端在idea写的程序和数据库建立连接 步骤&#xff1…

Python处理异常用操作介绍

Python中的异常处理主要用于捕获和处理程序运行过程中出现的错误。 在编写Python程序时&#xff0c;我们经常会遇到各种错误&#xff0c;如语法错误、运行时错误等。为了确保程序的稳定性和健壮性&#xff0c;我们需要对可能出现的错误进行捕获和处理。本文将介绍Python中常用的…

css美化滚动条样式

效果展示 实现 滚动条宽&#xff0c;高度 /* 整体滚动条 */ ::-webkit-scrollbar {width: 10px; }/* 滚动条轨道 */ ::-webkit-scrollbar-track {background-color: #ffffff;border-radius: 6px; }/* 滚动条滑块 */ ::-webkit-scrollbar-thumb {background-color: #888;borde…

伺服阀放大器配套稳压电源

稳压电源是为伺服阀放大器配套的电源。该稳压电源在开关电源基础上采用了多项先进技术进行设计&#xff0c;输出直流电压稳压精度高、纹波系数小、可靠性好。稳压电源也适用于其他各种伺服控制系统的配套电源。输入&#xff08;180~240VAC 50Hz&#xff09;&#xff0c;输出&am…

SAP ABAP 常用实用函数

文章目录 前言一、日期 时间 相关 a.两个日期之间相隔多少月 二、数据 操作 转化 加密 a.增加 去除 前导零 b.将 数值类型 负号 提前 c.数据加密 MD5 加密 三、获取 属性 定义 读取 数据 a.获取函数的 出参 入参 定义 …

Linux|如何查找和删除重复文件

引言 整理您的个人文件夹甚至整个操作系统可能会相当棘手&#xff0c;特别是当您习惯于使用下载管理器从网上下载各种资料时。 在很多情况下&#xff0c;您可能会发现自己不小心下载了重复的mp3、pdf和epub文件&#xff08;以及其他类型的文件&#xff09;&#xff0c;并将它们…

HTML5+CSS3+JS小实例:图片九宫格

实例:图片九宫格 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1…

智慧城市新利器:免费可视化工具助力高效管理

在智慧城市的建设中&#xff0c;实现高效的统筹管理是至关重要的。通过免费可视化工具“山海鲸可视化”&#xff0c;这一目标可以轻松达成。山海鲸可视化是一款免费可视化工具&#xff0c;具备二三维融合、易用性、安全性以及高质量画面渲染等特色&#xff0c;是制作智慧城市可…

通义听悟--一个懂你的AI助理

通义听悟--一个懂你的AI助理 通义听悟音频转文字本地音视频转文字云盘音视频转文字 实时记录通义听悟进阶体验感受功能建议产品联动 通义听悟 在体验通义听悟之前&#xff0c;我们首先得知道什么是通义听悟&#xff1f;有什么应用场景&#xff1f; 通义听悟简单来说就是你的工…

Java短剧系统

探索影视新体验 &#x1f4f1;一、引言&#xff1a;短剧时代的来临 在数字化的今天&#xff0c;我们见证了许多内容消费模式的转变。从长篇大论的电视剧到短小精悍的短视频&#xff0c;再到如今备受瞩目的短剧&#xff0c;观众对于影视内容的需求越来越多元化。而短剧系统微信…