JavaScript—对象与构造方法
目录
json对象(字面值)
js中对象是什么?
如何使用?
关联数组
js对象和C#对象有什么区别?
构造函数
什么是构造方法?
如何使用构造方法?
如何添加成员?
对象的动态成员
正则表达式
正则表达式干什么的?
元字符有哪些?
在js中如何创建一个正则表达式?
有哪些步骤?
1、匹配:
2、提取:
循环提取:
3、替换
js代码的编写方式
json对象(字面值)
用花括号括起来的
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title><style type="text/css">#txt{width:150px;height:150px;}</style><script type="text/javascript">var o ={name:"张三",sex:"男",age:19,sayHello:function(){alert("你好")}};alert(o.name);alert(o.sex);alert(o.age);o.sayHello();</script>
</head>
<body></body>
</html>
js中对象是什么?
是面向对象的语言。就是键值对
如何使用?
Var 对象名 = function( ) { };
键值对,值可以是数字、字符串或布尔类型的数据,好比字段值也可以是函数,好比方法,键就是变量名或函数名
<html><head><title></title><style type="text/css"> </style><script type="text/javascript">Var o = { }; //Object对象var o = {name:"邓礼梅", //name:键;邓礼梅:值sex:"女",age:10,sayHello:function() {alert("你好")0}};alert (o.name);alert(o.sex);alert(o.age);o.sayHello();//还可以这样输出:必须带有双引号,否则alert(o["name"]); //如果不写双引号,返回undefined,空类型o["sayHello"]();</script></head><body></body>
</html>
关联数组
O.name
O.sayHello()
在js中支持将对象当作数组使用 ,如下:
O["name"]
O["sayHello"]()
js对象和C#对象有什么区别?
C#和js中this都表示当前对象(实例)
this:指代这个类
var o = { name:"邓礼梅",sex:"女",age:10,"sayHello":function() {alert("你好,我是:"+this.name+",我今年"+this.age+"我是:"+this.sex);}};o["sayHello"]();
构造函数
什么是构造方法?
- 普通方法
- 调用的时候使用new就可以将其作为构造方法来使用了
- js没有类,直接使用构造方法创建对象
既然字面值也相当于是包装一个对象,那为什么还会有构造方法?
构造方法是原型继承的载体
和C#相同:
Var o1 = { };
Var o2 = new Object( ); //Object的构造方法
注:js中的所有对象类型都来自于object
和C#不同点:
js中方法里面可以在定义一个方法,C#不能方法嵌套方法
如何判断变量是否是构造方法创建出来?
Boolean 变量 instanceof 构造方法
Alert ({ } instanceof Object);
var foo = function(){}
var obj = new foo();
alert (typeof obj); //打印object
alert(obj instanceof foo); //打印true
继承方法不同
js中:Object表示方法,object表示类型
c#中:都一样
如何使用构造方法?
- 创建一个函数
- new这个函数
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<style type="text/css">
#txt{
width:150px;
height:150px;
}
</style>
<script type="text/javascript">//创建一个函数var o = function(){this.name ="赵啸虎";this.age=19;this.sayHello = function(){alert("我的名字叫:" +this.name);};
};
//new这个函数
var fun = new o();fun.sayHello(); //此时打印"我的名字叫赵啸虎"
</script>
</head>
<body></body>
</html>
如何添加成员?
在构造方法中使用this.成员进行添加
对象的动态成员
如果一个对象没有定义Memeber的属性,但是现在希望他有,只需要用”对象.Member=值“,那么就可以给这个对象创建该成员了
var Person= function(){}; //创建一个函数
var zhangsan = new Person(); //new这个函数zhangsan.name="邓礼梅"; //动态添加成员
zhangsan.sayHello = function(){alert("我的名字叫:" +this.name);
};
zhangsan.sayHello(); //调用成员,此时打印”我的名字叫邓礼梅“
如果又创建了一个person对象,此时person对象不具备name和sayHello属性
//如果又创建了一个person对象,此时person对象不具备name和sayHello属性
var lisi = new Person();//如果想要让lisi也具备name和sayHello属性,如何做?
//把成员写在function函数里
正则表达式
正则表达式干什么的?
用于定义一些字符串的规则。
计算机可以根据正则表达式,来检查一个字符串是否符合规则。
获取将字符串中符合规则的内容提取出来。
元字符有哪些?
基本元字符:. [ ] | ( )
限定元字符:+ * ? {n} {n,} {n,m}
首尾元字符:^ $
简写形式:
\d(查找数字)
\D
\w(匹配字母、数字及下划线) 。等价于'[A-Za-z0-9_]'
\W匹配非字母、数字、下划线。等价于'[^A-Za-z0-9_]'
\s(查找空白字符) \S
链接:https://www.runoob.com/regexp/regexp-metachar.html
在js中如何创建一个正则表达式?
字面值:var regex = /\d+/;
构造函数:var regex = new RegExp("\\d+"); //斜线代表转义
注:i(忽略大小写) g(global,全局匹配模式)
有哪些步骤?
1、匹配:
C#:bool Regex.IsMatch(字符串,正则);
js:boolean 正则表达式对象.test(字符串);
//字面值
var r = /^\d+$/; //匹配一个用数字开头,数字结尾的字符
alert(r.test("abc1234"));
alert(r.test("343434343434fg"));
alert(r.test("34343"));//构造函数
var r = new RegExp("^\\d+$");
alert(r.test("abc1234"));
alert(r.test("343434343434fg"));
alert(r.test("34343"));
2、提取:
提取使用方法
像数组的对象正则表达式对象.exec(字符串);
这个对象的[0]是匹配到的结果
这个[1]、[2]、……是各个组
//提取邮箱
var str = "我的邮箱是denglimei@163.com,你的呢?";
var r = /([a-zA-z0-9]+)@([a-zA-z0-9]+(\.[a-zA-z0-9]+)+)/;
var match = r.exec(str); //测试匹配str字符串
alert(match[0]); //输出第0组,denglimei@163.com
alert(match[1]); //输出第1组,denglimei
alert(match[2]); //输出第2组,163.com
循环提取:
//循环匹配
var str = "12345";
var r = /\d\d/g; //global全局的。\d查找数字,一次匹配两个
var m = r.exec(str);
m = r.exec(str);
m = r.exec(str);
m = r.exec(str);
//length:循环次数
var arr = []; //数组
var m = null;
while((m=r.exec(str))!=null){ //当提取的内容不为空arr.push(m); //把内容添加到数组
}var _ = 0;
3、替换
String <string>.replace(正则表达式或字符串,替换为的字符串);
var str = "a--b----c---------d-----e-----f";
var str1 = str.replace(/-+/g,"-");
alert(str1);var date = "2018年8月17日";
var date1 = date.replace(/(\d+)年(\d+)月(\d+)日/,"$1-$2-$2");
alert(date1);
js代码的编写方式
—>无论是js还是css都可以写在页面中
<script>与</script>可以放在页面中的任何一个地方,并且多个与一个是一样的
—>一般企业开发为了让浏览器显示页面更加流畅
<style>或<link>标签都写在前面
<script>标签一般将较大的内容放在后面
—>css使用link引入
javascript使用script标签引入
<script type="text/javascript" src="路径"></script>
相关文章:

JavaScript—对象与构造方法
目录 json对象(字面值) js中对象是什么? 如何使用? 关联数组 js对象和C#对象有什么区别? 构造函数 什么是构造方法? 如何使用构造方法? 如何添加成员? 对象的动态成员 正则…...
微信小程序社区户口管理的系统设计与实现
摘要 我国的户口管理制度由来已久,我国对于合法居民在新生儿的出生、户口的落地、迁移以及户口的注销上都有着详细的管理条例进行约束。通过户口的管理可以更好地对我国的居民人数进行有效的内容统计,在进行人口普查的过程中也能够实现更好的、更加精准的…...

闲人闲谈PS之四十六——网络生产全流程
惯例闲话:下半年已开始块行情似乎又是一波大涨,很多朋友委托我介绍PS顾问,很多朋友已经上了能源系统项目,这就造成装备制造的PS又是极度紧缺,rate也还可以,搞的自己也有点心痒痒。这种逆势大涨,…...

如何在VR头显端实现低延迟的RTSP或RTMP播放
技术背景 VR(虚拟现实技术)给我们带来身临其境的视觉体验,广泛的应用于城市规划、教育培训、工业仿真、房地产、水利电力、室内设计、文旅、军事等众多领域,常用的行业比如: 教育行业:VR头显可以用于教育…...

【工具类】提高办公效率(兼具有趣、好玩)
1 Wormhole 免费免注册登录在线、不限速文件传输 Simple, private file sharing https://wormhole.app/ 2 ALL to ALL 在线格式转换 免费、免注册登录 国内最全类型的在线文件转换平台,免费、快速,无须下载安装任何软件。 https://www.alltoall.net/ …...

navicat连接数据库的方法(易懂)
1.首页要先下载Navicat 官网下载即可 2.下载完点击进入 找到左上角的连接 3.点击选择MySQL... 4.点击进入开始连接数据库...

收支明细管理实操:如何准确记录并修改收支明细?
宣传软文: 在日常生活中,收支明细的管理至关重要,无论是个人还是企业。准确的记录不仅能有效管理财务,还能提供清晰的依据以供分析和决策。但在实际操作中,可能出现记录错误的情况。本文将详细介绍如何记录和修改收支明…...
SSL证书的工作原理是怎样的?
传统的网络通信采用的是HTTP传输协议,数据全程公开暴露,很容易被第三方监听和窃取,对用户和网站的数据安全造成很大威胁。为了保护用户的数据安全,SSL证书逐渐普及并应用于政府和企业网站之中,成为了提升数据安全水平&…...
Java发送请求到第三方(RestTemplate方法)
Get请求 try {RestTemplate restTemplate = new RestTemplate();//设置请求头HttpHeaders headers = new HttpHeaders();headers.add("Authorization", "Bearer token");headers.add("User-Agent", "Mozilla/5.0");HttpEntity entity…...

CentOS 7 Nacos 设置开机自动重启
一、说明 Nacos如果是手动启动的话,在服务器宕机或者重启后,没有自动运行,影响很多业务系统,需要每次手动执行命令 startup.sh -m standalone,才能启动 Nacos 服务,不能像docker服务一样,使用 …...

安防监控平台EasyCVR视频汇聚平台增加首页告警类型的详细介绍
安防监控/视频集中存储/云存储EasyCVR视频汇聚平台,可支持海量视频的轻量化接入与汇聚管理。平台能提供视频存储磁盘阵列、视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、平台级联、H.265自动转码等…...

构建安全可信、稳定可靠的RISC-V安全体系
安全之安全(security)博客目录导读 2023 RISC-V中国峰会 安全相关议题汇总 说明:本文参考RISC-V 2023中国峰会如下议题,版权归原作者所有。...

3.RabbitMQ 架构以及 通信方式
一、RabbitMQ的架构 RabbitMQ的架构可以查看官方地址 可以看出RabbitMQ中主要分为三个角色: Publisher:消息的发布者,将消息发布到RabbitMQ中的ExchangeRabbitMQ服务:Exchange接收Publisher的消息,并且根据Routes策…...

分布式事务篇-2.1 阿里云轻量服务器--Docker--部署Seata
文章目录 前言一、Seata 介绍二、Docker 部署:2.1.拉取镜像:2.2.运行镜像:2.3.拷贝配置文件:2.4.部署:2.5.参数解释:2.5.1 端口:2.5.2 SEATA_IP:2.5.3 SEATA_PORT:2.5.4 …...

C语言这么没用??
今日话题,C语言真的这么不堪吗?最近我兄弟向我倾诉,他在几天前受到老板的责骂,原因是他只懂C语言编程,无法达到老板的期望。其实不是C语言不堪,而是嵌入式领域复杂性多种多样,需要灵活的解决方案…...
Docker运维篇
Docker运维篇 Docker 设置自启Docker 指定容器设置自启重启linux 计算机网络常见错误汇总centos 7 Docker容器启动报WARNING: IPv4 forwarding is disabled. Networking will not work Docker 设置自启 # 重启docker sudo systemctl enable docker# 设置开机自启 systemctl e…...

【数学建模】清风数模正课7 多元线性回归模型
多元线性回归分析 回归分析就是,通过研究自变量X和因变量Y的相关关系,来解释Y的形成机制,从而达到通过X去预测Y的目的。 所以回归分析需要完成三个使命,首先是识别重要变量,其次是判断正负相关,最后是估计…...

文心一言 VS 讯飞星火 VS chatgpt (83)-- 算法导论8.1 4题
四、用go语言,假设现有一个包含n个元素的待排序序列。该序列由 n/k 个子序列组成,每个子序列包含k个元素。一个给定子序列中的每个元素都小于其后继子序列中的所有元素,且大于其前驱子序列中的每个元素。因此,对于这个长度为 n 的…...

温故知新之:代理模式,静态代理和动态代理(JDK动态代理)
0、前言 代理模式可以在不修改被代理对象的基础上,通过扩展代理类,进行一些功能的附加与增强。 1、静态代理 静态代理是一种代理模式的实现方式,它在编译期间就已经确定了代理对象,需要为每一个被代理对象创建一个代理类。静态代…...
软件工程(十二) 设计模式之创建型模式
我们传统的23种设置模式如下 创建型模式:用于创建对象 工厂方法(Factory Method) 模式抽象工厂(Abstract Factory) 模式原型(Protptype) 模式单例(Singleton) 模式构建器模式结构型模式:建立更大的结构 适配器(Adapter)模式桥接(Bridge)模式组合(Composite)模式装饰(D…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...