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#中:都一样

如何使用构造方法?

  1. 创建一个函数
  2. 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>

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

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

相关文章

Python|爬虫和测试|selenium框架的安装和初步使用(一)

前言&#xff1a; Python作为一门胶水语言来说&#xff0c;可以说是十分的优秀&#xff0c;什么事情都可以干&#xff0c;并且在某些领域还能干的非常不错&#xff0c;尤其是在爬虫和测试领域&#xff0c;该语言可以说是没有对手。 这么说的原因是因为如果你要使用爬虫爬取某…

汽车自适应巡航系统车距控制策略研究

1 引言 自适应巡航控制( Adaptive Cruise Control&#xff0c;ACC) 是汽车驾驶辅助系统的重要组成部分&#xff0c;其作用是根据车距传感器探测到本车( ACC 车辆) 与主目标车辆( 前车) 之间的相对位置和相对速度信息&#xff0c;自动调节ACC 车辆的节气门开度或部分制动力矩( 即…

探索数据湖中的巨兽:Apache Hive分布式SQL计算平台浅度剖析!

文章目录 ◆ Apache Hive 概述1.1 分布式SQL计算1.2 Hive的优势 ◆ 模拟实现Hive功能2.1 元数据管理2.2 解析器2.3 基础架构2.4 Hive架构 ◆ Hive基础架构3.1 Hive架构图3.2 Hive组件3.2.1 元数据存储3.2.2 Driver驱动程序3.2.3 用户接口 ◆ Hive部署4.1 VMware虚拟机部署步骤一…

【学习笔记】求解线性方程组的G-S迭代法

求解线性方程组的G-S迭代法 // 运行不成功啊function [x,k,index] Gau_Seid(A,b,ep,it_max) % 求解线性方程组的G-S迭代法&#xff0c;其中 % A为方程组的系数矩阵 % b为方程组的右端项 % ep为精度要求&#xff0c;省缺为1e-5 % it_max为最大迭代次数&#xff0c;省缺为100 % …

新KG视点 | Jeff Pan、陈矫彦等——大语言模型与知识图谱的机遇与挑战

OpenKG 大模型专辑 导读 知识图谱和大型语言模型都是用来表示和处理知识的手段。大模型补足了理解语言的能力&#xff0c;知识图谱则丰富了表示知识的方式&#xff0c;两者的深度结合必将为人工智能提供更为全面、可靠、可控的知识处理方法。在这一背景下&#xff0c;OpenKG组织…

eslint

什么是eslint ESLint 是一个根据方案识别并报告 ECMAScript/JavaScript 代码问题的工具&#xff0c;其目的是使代码风格更加一致并避免错误。 安装eslint npm init eslint/config执行后会有很多选项&#xff0c;按照自己的需求去选择就好&#xff0c;运行成功后会生成 .esli…

bpmnjs Properties-panel拓展(属性设置篇)

最近有思考工作流相关的事情&#xff0c;绘制bpmn图的工具认可度比较高的就是bpmn.js了&#xff0c;是一个基于node.js的流程图绘制框架。初始的框架只实现了基本的可视化&#xff0c;想在xml进行客制化操作的话需要拓展&#xff0c;简单记录下几个需求的实现过程。 修改基础 …

每天一道leetcode:542. 01 矩阵(图论中等广度优先遍历)

今日份题目&#xff1a; 给定一个由 0 和 1 组成的矩阵 mat &#xff0c;请输出一个大小相同的矩阵&#xff0c;其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例1 输入&#xff1a;mat [[0,0,0],[0,1,0],[0,0,0]] 输出&#xff…

java八股文面试[多线程]——指令重排序

关于a的操作&#xff0c;由原来的6个指令&#xff0c;变成了4个指令。 1. 指令重排序的介绍 1&#xff09;指令重排序的类型 在执行程序时为了提高性能&#xff0c;编译器和处理器常常会对指令做重排序。 重排序分三种类型&#xff1a;编译器优化的重排序 编译器在不改变单线…

分布式一致性协议

在对一个分布式系统进行架构设计的过程中&#xff0c;往往会在系统的可用性和数据一致性之间进行反复的权衡&#xff0c;于是就产生了一系列的一致性协议。为了解决分布式一致性问题&#xff0c;在长期的探索研究过程中&#xff0c;涌现出了一大批经典的一致性协议和算法&#…

SpringMVC 第二天

第 1 章 ModelAttribute 和 SessionAttribute[ 应 用 ] 1.1ModelAttribute 1.1.1 使用说明 作用&#xff1a; 该注解是 SpringMVC4.3 版本以后新加入的。它可以用于修饰方法和参数。 出现在方法上&#xff0c;表示当前方法会在控制器的方法执行之前&#xff0c;先执行…

Open3D 进阶(7)Kmeans++点云聚类

目录 一、算法原理1、原理概述2、实现流程3、参考文献二、代码实现三、结果展示四、测试数据本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 1、原理概述

【Android-Flutter】我的Flutter开发之旅

目录: 0、文档&#xff1a;1、在Windows上搭建Flutter开发环境&#xff08;1&#xff09;[使用中国镜像(❌详细看官方文档)](https://docs.flutter.dev/community/china)&#xff08;2&#xff09;[下载最新版Flutter SDK&#xff08;已包含Dart&#xff09;](https://docs.flu…

[SQLITE_ERROR] SQL error or missing database (near “=“: syntax error)【已解决】

这个报的错误是语法错误&#xff0c;但是我并没有看出来这行代码有什么错。 通过排除掉下边两个问题解决的 从增加记录方法复制的下来的代码&#xff0c;只删除了关闭自动提交事务&#xff0c;但是connection.commit忘记删除executeQuery和executeUpdate方法的用法忘记了&…

什么是网络取证(Network Forensics)

企业采用新技术来检查其网络安全是否存在零日漏洞&#xff0c;与立即指示问题的物理层不同&#xff0c;黑客攻击尝试可能会被忽视并变得严重&#xff0c;直到对网络流量有一个整体的可见性。通过实时监控来跟踪其源和目标的流量&#xff0c;以查明问题或潜在问题的根源。 什么…

Redis之集群模式

一、Redis集群 一个节点就是一个运行在集群模式下的Redis服务器&#xff0c;Redis服务器在启动时会根据cluster-enabled配置选项是否为yes来决定是否开启服务器的集群模式。 Redis节点不会互相发现&#xff0c;连接各个节点的工作需要使用cluster meet命令来完成 CLUSTER MEE…

Postman API测试之道:不止于点击,更在于策略

引言&#xff1a;API测试的重要性 在当今的软件开发中&#xff0c;API已经成为了一个不可或缺的部分。它们是软件组件之间交互的桥梁&#xff0c;确保数据的流动和功能的实现。因此&#xff0c;对API的测试显得尤为重要&#xff0c;它不仅关乎功能的正确性&#xff0c;还涉及到…

Android屏幕适配(5) — 最小宽度smallWidth适配

概述 最小宽度smallWidth适配实现屏幕适配方案 详细 前言 在之前的文章中&#xff0c;我们讲到了Android屏幕适配的一些知识&#xff0c;大家感兴趣的话可参考Android屏幕适配(1) — 概念解释Android屏幕适配(2) — drawable与mipmapAndroid屏幕适配(3) — 资源文件夹命名与…

C++元编程——深度双向RNN实验

使用C的标准库实现了双向RNN的功能。最近对DRNN做了一些改进&#xff0c;同时进行了实验&#xff0c;首先DRNN的代码如下&#xff1a; #ifndef _RNN_HPP_ #define _RNN_HPP_ #include <stdio.h> #include <stdlib.h> #include <vector> #include "mat.…

爬虫逆向实战(二十五)--某矿采购公告

一、数据接口分析 主页地址&#xff1a;某矿 1、抓包 通过抓包可以发现数据接口是cgxj/by-lx-page 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”模块可以发现有一个param的加密参数 请求头是否加密&#xff1f; 无响应是否加密&#xff1f; 无c…