JavaScript-----对象(创建对象、数组与字符串)

news2024/10/5 13:03:10

 目录

前言:

1. JavaScript创建对象

1.1 对象的创建

 1.2 对象的调用

1.3 for-in循环语句

2.内置对象

2.1 Array(数组)对象

属性和方法

2.2 String(字符串)对象

属性和方法

2.3 Math对象

2.4 日期对象


前言:

        在学习JavaScript之前我们都知道,这是一门面对对象的编程语言,跟Python、Java是一样的,一切数据皆可以是对象,与此同时我们可以去通过创建自定义对象进行相关的编程操作,下面就一起学习JavaScript的面对对象吧!

1. JavaScript创建对象

1.1 对象的创建

 JavaScript中object类型包含的数据有很多,数组、普通对象、DOM节点、内置对象等等都属于obejct类型。

JavaScript中使用花括号{ }来创建对象,{ }中用来定义对象中的属性。属性是一个个键:值对的组合,其中键(属性名称)始终是字符串类型的,而值(属性值)则可以是任意类型,例如字符串、数组、函数或其它对象等。不同的属性之间使用逗号进行分隔。

//创建一个对象
let L={
        name:'Tom',
        age:20,
        tall:176,
        fun:function() //创建一个方法
        {
            console.log(this.name) //打印这个对象的name属性
        }
    };

//创建一个对象
let person = {
    name: "吴彦祖",
    age: 28,
    gender: "Male",
    displayName: function() {
        document.write(this.name);
    }
};

如果你们学了Python的面对对象就会发现,JavaScript的自定义对象跟Python是有异曲同工之处的,Python是通过self来去指定本身对象,而在JavaScript是去通过this来去指向自己

 1.2 对象的调用

在定义对象时,属性名称虽然是字符串类型,但通常不需要使用引号来定义

函数的this指向,指向调用函数的对象

要访问或获取属性的值,您可以使用对象名.属性名或者对象名["属性名"]的形式

console.log(person.name)
console.log(person["age"])

使用对象名.属性名或者对象名["属性名"]的形式除了可以获取对象的属性值外,也可以用来设置或修改对象的属性值

person.phone = "150*******8";
person.age = 20;
person["name"] = "湖南吴彦祖";

使用delete语句来删除对象中的属性

delete person.gender;
delete person["phone"];

1.3 for-in循环语句

for-in循环是一种特殊循环,可用于循环对象或数组。在此之前Python也有类似的语法,但是不同的是JavaScript获取到的是一个索引的值(也就是键值),而不是直接获取到里面的数据,看以下代码示例:

let a=[1,2,3,4,5];
    let L={
        name:'Tom',
        age:20,
        tall:176,
        fun:function()
        {
            console.log(this.name) //打印这个对象的name属性
        }
    };
    /*输出:name
            age
            tall
            fun*/
    for(let key in L){
        console.log(key);
    }
    for(let i in a){
        console.log(a[i]);
    }
    //输出 1 2 3 4 5

2.内置对象

内置对象是JavaScript预先提供的一些特殊对象,比如数字、字符串等等,能实现不同的功能

2.1 Array(数组)对象

数组是值的有序集合,数组中的每个值称为一个元素,每个元素在数组中都有一个数字位置,称为下标,下标从0开始,依次递增。

  • 数组用于存储若干数据,自动为每位数据分配下标,从0开始

  • 数组中的元素不限数据类型,长度可以动态调整

  • 动态操作数组元素 :根据元素下标读取或修改数组元素,arr[index]

let arr = [10, 50, true];

JavaScript里面的数组实际上就是Python中的列表,但是这里叫做数组。

属性和方法

  • length:获取数组长度

  • push(data):在数组的末尾添加一个或多个元素,多个元素之间使用逗号隔开,返回添加之后的数组长度。

  • pop():移除末尾元素,返回被移除的元素。

  • shift():移除数组的第一个元素,返回被移除的元素。

  • unshift(data):在数组的头部添加一个或多个元素,返回添加之后的数组长度。

  • splice(index,num):从数组中添加/删除项目,返回被删除的项目。

  • slice(startNum,endNum) 截取数组(切片):startNum 参数为起始位置(包含), endNum 参数结束位置(不包含)。

  • toString():将数组转换成字符串类型,返回字符串结果。

  • join(param):将数组转换成字符串,可以指定元素之间的连接符,如果参数省略,默认按照逗号连接,返回字符串。

  • reverse(函数参数):反转数组,倒序重排,返回重排的数组,注意该方法直接修改原数组的结构

  • sort(函数参数):对数组中元素排序,默认按照Unicode编码升序排列,返回重排后的数组,直接修改原有数组  函数参数 : 可选,自定义排序算法

 如果你学了Python的话,上面这些基本上就是列表的操作方法,过一遍就懂了。

2.2 String(字符串)对象

属性和方法

  • 转换字母大小写:

    • toUpperCase() 转大写字母

    • toLowerCase() 转小写字母

    • 返回转换后的字符串,不影响原始字符串

  • 获取字符或字符编码

    • charAt(index): 获取指定下标的字符

    • charCodeAt(index) 获取指定下标的字符编码

    • 参数为指定的下标,可以省略,默认为0

  • indexOf(str,fromIndex):获取指定字符的下标,从前向后查询,找到即返回

    • str 表示要查找的字符串,必填

    • fromIndex 表示起始下标,默认为0

    • 返回指定字符的下标,查找失败返回-1

  • 截取字符串

    • substring(startIndex,endIndex):根据指定的下标范围截取字符串,startIndex ~ endIndex-1,startIndex:表示起始下标 ,endIndex:表示结束下标,可以省略,省略表示截止末尾

    • substr(startIndex,len):从指定索引位置截取指定长度的字符串

  • split(param):将字符串按照指定的字符进行分割,以数组形式返回分割结果。参数 : 指定分隔符,必须是字符串中存在的字符,如果字符串中不存在,分割失败,仍然返回数组

  • match(regExp/subStr):查找字符串中满足正则格式或满足指定字符串的内容。返回 : 数组,存放查找结果

  • replace(regExp/subStr,newStr):根据正则表达式或字符串查找相关内容并进行替换,替换后的字符串,不影响原始字符串。

2.3 Math对象

Math对象主要提供一些列数学运算的方法

属性:圆周率 : Math.PI

我们主要用的就是他里面的随机数方法

  • Math.random() 随机生成0到1之间的数 包括0不包括1

  • Math.ceil() 向上取整(天花板值) 遇到小数向上取整

  • Math.floor() 向下取整(地板值) 遇到小数向下取整

  • Math.round() 四舍五入

2.4 日期对象

创建日期对象

let date1 = new Date("2022/11/11");
let date2 = new Date("2011/11/11 11:11:11");

日期对象方法

  1. getTime() 返回一个毫秒值 到时间零点的距离

  2. getFullYear() 返回年

  3. getMonth() 返回月 注意:得到的月份是从0开始 要返回当前月需要加1

  4. getDate() 返回日期

  5. getHours() 返回小时

  6. getMinutes() 返回分钟

  7. getSeconds() 返回秒

  8. getDay() 返回星期

 以上就是本期的学习内容,我们下一期再见!

 分享一张壁纸:

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

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

相关文章

华为云API对话机器人CBS的魅力—实现简单的对话操作

云服务、API、SDK,调试,查看,我都行 阅读短文您可以学习到:人工智能AI智能的问答管理、全面的对话管理、高效训练部署 1.IntelliJ IDEA 之API插件介绍 API插件支持 VS Code IDE、IntelliJ IDEA等平台、以及华为云自研 CodeArts …

Unity项目包体优化经验方法论(Android平台)

前言 本篇文章主要讲解对于Unity Android平台也就是APK包体的优化经验,使用哪些工具能够更加便利的定位资源重灾区。本篇讲解的方法中对于Unity资源使用的AssetBundle的方式,如果使用addressable或其他资源管理方式,我还不是很清楚是否适用&…

Vue + Element UI 前端篇(六):更换皮肤主题

自定义主题 命令行主题工具 1.安装主题工具 首先安装「主题生成工具」,可以全局安装或者安装在当前项目下,推荐安装在项目里,方便别人 clone 项目时能直接安装依赖并启动。 yarn add element-theme --dev 2.安装chalk主题 安装白垩主题…

STC15单片机特有的PWM寄存器和普通定时器实现PWM输出

STC15单片机特有的PWM寄存器和普通定时器实现PWM输出 🌿主要针对STC15W4型号特有的6通道15位专门的高精度PWM。 ✨STC15W4K32S4系列单片机具有6通道15位专门的高精度PWM(带死区控制)和2通道CCP(利用它的高速脉冲输出功能可实现11~16位PWM);(STC15F/L2K60S2系列单片机具有3通…

RC-u4 相对论大师(bfs求解指定路径)

PTA | 程序设计类实验辅助教学平台 题解&#xff1a; bfs可以求解从根节点到叶子节点的指定路径&#xff0c;这里的vis[]不是为了防止访问到父节点&#xff0c;更多的是为了缩小路径长度&#xff0c;mpp和mp的映射也很巧妙&#xff0c;开始我用的还是map<pair<string,s…

用通俗易懂的方式讲解大模型分布式训练并行技术:流水线并行

近年来&#xff0c;随着Transformer、MOE 架构的提出&#xff0c;使得深度学习模型轻松突破上万亿规模参数&#xff0c;传统的单机单卡模式已经无法满足超大模型进行训练的要求。因此&#xff0c;我们需要基于单机多卡、甚至是多机多卡进行分布式大模型的训练。 而利用AI集群&…

怎么用conda下载清华源的pytorch(自带cuda的版本)

1&#xff0c;添加镜像源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…

大数据课程K22——Spark的SparkSQL的API调用

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 掌握Spark的通过api使用SparkSQL&#xff1b; 一、通过api使用SparkSQL 1. 实现步骤 1. 打开scala IDE开发环境&#xff0c;创建一个scala工程。 2. 导入spark相关依赖…

介绍 dubbo-go 并在Mac上安装,完成一次自己定义的接口RPC调用

目录 RPC 远程调用的说明作用&#xff1a;像调用本地方法一样调用远程方法和直接HTTP调用的区别&#xff1a;调用模型图示&#xff1a; Dubbo 框架说明Dubbo Go 介绍应用 Dubbo Go环境安装&#xff08;Mac 系统&#xff09;安装 Go语言环境安装 序列化工具protoc安装 dubbogo-c…

【VSCode】文件模板创建及使用.md

背景 最近使用VSCode学习Vue项目比较频繁&#xff0c;每次创建Vue文件都要手动写重复代码&#xff0c;特别麻烦&#xff0c;就上网查找自动生成代码的说明&#xff0c;结果发现VSCode有代码模板&#xff0c;怪怪&#xff0c;感觉发现新大陆了(low!)。 配置 打开配置 方式一&a…

通过slam同步建图程序看ros2节点参数传递生效顺序

缘起&#xff1a; ros2 节点参数可以通过启动节点添加&#xff0c;也可以通过launch文件添加&#xff0c;还可以通过配置文件.yaml文件添加&#xff0c;或者是几种方式套用添加&#xff0c;给初学者带来很大的困惑具体是哪个生效了呢&#xff0c;我们拿slam_toolbox 包的onli…

shell脚本介绍

当你进入Linux世界的大门时&#xff0c;就会遇到一个强大而又神奇的工具——Shell。Shell是一种命令行解释器&#xff0c;为你在Linux系统中与计算机进行互动提供了无限的可能性。 学习Shell可以让你获得强大的自动化和脚本编程能力&#xff0c;让你更高效地处理文件和目录、管…

【力扣周赛】第 357 场周赛(⭐反悔贪心)

文章目录 竞赛链接Q1&#xff1a;6925. 故障键盘解法1——直接模拟解法2——双端队列 Q2&#xff1a;6953. 判断是否能拆分数组&#xff08;贪心&#xff09;Q3&#xff1a;2812. 找出最安全路径⭐解法1——多源BFS瓶颈路模型&#xff1f;解法2——多源BFS 倒序枚举答案 并查…

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程

完善登录流程 1. 丰富登录界面 1.1 从 Element 指南中选择组件模板丰富登录界面&#xff0c;放置一个登录界面表单&#xff0c;包含账号密码输入框和登录重置按钮。 <template><el-form :model"loginForm" :rules"fieldRules" ref"loginFo…

数字图像处理:亮度对比度-几何变换-噪声处理

文章目录 数字图像增强亮度与对比度转换几何变换图像裁剪尺寸变换图像旋转 噪声处理添加噪声处理噪声 数字图像增强 亮度与对比度转换 图像变换可分为以下两种&#xff1a; 点算子&#xff1a;基于像素变换&#xff0c;在这一类图像变换中&#xff0c;仅仅根据输入像素值计算…

真随机数生成器TRNG外设模块详解

真随机数生成器TRNG外设模块详解 文章目录 真随机数生成器TRNG外设模块详解简介原理与机制应用要点时钟源中断源初始化数据 软件支持 简介 国产车规微控制器原厂云途半导体设计和发售的YTM32ME微控制器上集成的真随机数生成器TRNG&#xff08;True Random Number Generator&am…

01_TMS320F28004x系列MCU介绍和资料搜集

1. TI C2000 实时微控制器 TI公司在处理器方面的产品线有&#xff1a;基于ARM内核的微控制器/微处理器、MSP430微控制器、C2000系列实时微控制器、还有数字信号处理器&#xff08;DSP&#xff09;。 其中&#xff0c;C2000是TI公司专门针对实时控制推出的32位微控制器。TI公司…

继承(个人学习笔记黑马学习)

1、基本语法 #include <iostream> using namespace std; #include <string>//普通实现页面//Java页面 //class Java { //public: // void header() { // cout << "首页、公开课、登录、注册...(公共头部)" << endl; // } // void footer() …

IDEA爪哇操作数据库

少小离家老大回,乡音无改鬓毛衰 ⒈.IDEA2018设置使用主题颜色 IDEA2018主题颜色分为三种&#xff1a;idea原始颜色&#xff0c;高亮色&#xff0c;黑色 设置方法&#xff1a;Settings–Appearance&Behavior–Appearance ⒉.mysql中&#xff0c;没有my.ini&#xff0c;只有…

计算机视觉中的自监督学习

如何只使用少量标记示例来训练模型&#xff1f; 到目前为止&#xff0c;人工智能所提供的大部分价值都来自于在日益庞大的数据集上训练的监督模型。其中许多数据集都是由人类标记的&#xff0c;这是一项枯燥、耗时、容易出错&#xff0c;有时还很昂贵的工作。自监督学习&#x…