前端基础3——JavaScript基础用法

news2024/9/22 5:24:06

文章目录

  • 一、基本使用
    • 1.1 内部方式
    • 1.2 外部导入方式
    • 1.3 css标签调用js脚本(触发事件)
  • 二、Windows对象
    • 2.1 对象属性
    • 2.2 对象方法
  • 三、数据类型
    • 3.1 字符串处理
    • 3.2 数组处理
    • 3.3 对象处理
  • 四、流程控制
    • 4.1 操作符
    • 4.2 if判断语句
    • 4.3 for循环语句
    • 4.4 continue与break语句
    • 4.5 函数定义与调用
  • 五、选择器
    • 5.1 通过id获取元素
    • 5.2 通过标签名获取元素
  • 六、JS操作HTML
    • 6.1 插入内容
    • 6.2 修改标签属性
    • 6.3 改变标签样式
    • 6.4 获取输入的值
    • 6.5 添加标签元素
    • 6.6 删除元素

一、基本使用

  • JavaScript(简称JS):是一种轻量级客户端脚本语言,通常被直接嵌入HTML 页面,在浏览器上执行。
  • JavaScript作用:改变页面中的HTML元素、属性、样式、事件。

1.1 内部方式

  • 内嵌样式,在body标签中使用。

1.在body标签中写js脚本。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js测试</title>
</head>
<body>
<script>
    alert("你好,qingjun");
</script>
</body>
</html>

2.查看效果。
在这里插入图片描述

1.2 外部导入方式

  • 在head标签中使用。

1.编写js脚本main.js,统一存放在js目录下。

alert("你好,卿君");

2.html模板引用js文件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js测试</title>
    <script type="text/javascript" src="js/main.js"></script>   ##引用js文件。
</head>
<body>
</body>
</html>

3.查看效果。
在这里插入图片描述

1.3 css标签调用js脚本(触发事件)

  • 事件:指的是当HTML中发生某些事件时所调用的方法(处理程序)。
  • 例如点击按钮,点击后做相应操作,例如弹出一句话。

1.可以使用css中的一个标签直接调用js脚本。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js测试</title>
</head>
<body>

<button type="button" onclick="alert('欢迎来到中国')">提交</button>   ## onclick标签直接调用js脚本。

</body>
</html>

2.查看效果。
在这里插入图片描述

二、Windows对象

  • Window 对象表示浏览器中打开的窗口。

2.1 对象属性

window对象属性描述
document每个载入浏览器的 HTML 文档都会成为 Document 对象
innerheight返回窗口的文档显示区的高度
innerwidth返回窗口的文档显示区的宽度
location Location对象包含有关当前 URL 的信息
Navigator Navigator对象包含有关浏览器的信息
Screen Screen对象包含有关客户端显示屏幕的信息
history History对象包含用户(在浏览器窗口中)访问过的 URL
window window包含对窗口自身的引用

1.基本使用。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>控制开关</title>
</head>
<body>
<script type="text/javascript">
    window.document.write("输出内容");
    console.log(window.innerWidth,window.innerHeight,"输出内容");   //浏览器做适配时可以使用。
    console.log(window.Navigator);
</script>
</body>
</html>

在这里插入图片描述

2.刷新按钮。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>控制开关</title>
</head>
<body>
<button type="button" onclick="location.reload()">刷新当前页面</button>
<button type="button" onclick="location.href=location.href">重新请求当前页面</button>
<button type="button" onclick="location.href='http://www.baidu.com'">请求别的页面</button>
</body>
</html>

在这里插入图片描述

2.2 对象方法

window对象方法描述
alert()显示带有一段消息和一个确认按钮的警告框
confirm()显示带有一段消息以及确认按钮和取消按钮的对话框
setInterval()按照指定的周期(以毫秒计)来调用函数或计算表达式
clearInterval()取消由 setInterval() 设置的 timeout
setTimeout()在指定的毫秒数后调用函数或计算表达式。(类似于休眠)
clearTimeout()取消由 setTimeout() 方法设置的 timeout
typeof()查看数据类型

1.点击一次,刷新一次当前系统时间。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>控制开关</title>
</head>
<body>
<button type="button" onclick="refresh()">点击查看当前时间</button>
<script type="text/javascript">
    function refresh() {
        date = new Date()
        alert("当前时间为:"+date)
        console.log(date)
    }
</script>    
</body>
</html>    

在这里插入图片描述
2.点击开始,时间自动走。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>控制开关</title>
</head>
<body>

<div id="demo">
    <p>当前时间</p>
</div>
<button type="button" onclick="startRefresh()">开始</button>
<button type="button" onclick="stopRefresh()">停止</button>

<script type="text/javascript">
    function refresh() {
        x = document.getElementById('demo');
        y = x.getElementsByTagName("p");
        y[0].innerHTML = new Date() // 获取当前时间
    }

    // 点击开始,调用refresh()函数,1000毫秒进行周期性计数走动。
    function startRefresh() {
        interval = setInterval("refresh()", 1000);
    }
    // 停止
    function stopRefresh() {
        console.log(interval);
        clearInterval(interval)
    }
</script>
</body>
</html>

在这里插入图片描述

三、数据类型

  • 在JS中,数据类型有:字符串、数组、布尔、数组、对象、Null、Undefined。

3.1 字符串处理

1.字符串处理方法。

<script type="text/javascript">
    var s = "hello world";
    s.length; // 字符串长度
    s[4] //根据索引获取值
    s.replace('h','H'); //替换某个字符
    s.split("分隔符") //分隔为数组
    s.match("w") //找到返回匹配的字符,否则返回null
    console.log(s.match("w"));  //将内容打印在控制台。
    console.log(s.length);
    console.log(s);
    console.log(s.replace('o','M'));
    console.log(s.split("o"))
</script>

在这里插入图片描述
2.字符拼接+。
在这里插入图片描述

3.2 数组处理

1.数组处理,相当于python中的列表,是一个序列的数据结构。

###############################################################
//定义数组。
var computer = new Array();     //定义空数组。
var computer = ["主机","显示器","键盘","鼠标"]    //定义有值的数组。
###############################################################
//向数组添加元素。
computer[0]="主机";     //通过索引下标获取数组中的有序元素。
computer[1]="显示器";
computer[2]="键盘";
computer.push("网线");   //追加元素。
###############################################################
console.log(computer[3]);   //根据下标获取元素并打印到控制台。

2.查看效果。
在这里插入图片描述

3.3 对象处理

1.对象处理,相当于python中的字典,是一个具有映射关系的数据结构,用于存储有一定关系的元素。字典中的key不允许重复。

格式:d = {'key1':value1, 'key2':value2, 'key3':value3}
###############################################################
var user = {
	name:"卿君",
	sex: "男",
	age:"26"
};
console.log(user.name);   //根据key查看value值,方式一。
console.log(user['age']);   //根据key查看value值,方式二。
user.height = "180cm"      //增加一对key-value。
user['height'] = "182cm";    //根据key修改value值。
console.log(user.height);

2.查看效果。
在这里插入图片描述

四、流程控制

4.1 操作符

  • 操作符:一个特定的符号,用它与其他数据类型连接起来组成一个表达式。常用于条件判断,根据表达式返回True/False采取动作。
类型操作符
比较操作符== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
算术操作符+ 加法
- 减法
* 乘法
/ 除法
% 取余
++ 自增,自动+1
– 自减,自动-1
逻辑操作符&& 与
|| 或
!() 结果取反
赋值运算符= 赋值
+= 加法赋值
-= 减法赋值
*= 乘法赋值
/= 除法赋值
%= 取余赋值

4.2 if判断语句

  • if条件判断:判定给定的条件是否满足(True或False),根据判断的结果决定执行的语句。
//语法。
if (表达式) {
	<代码块>
} else if (表达式) {
	<代码块>
} else {
	<代码块>
}

1.控制开关。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>控制开关</title>
</head>
<body>
<img id="dengpao" src="img/off.png" alt=""><br>
<button type="button" onclick="main('on')">开灯</button>
<button type="button" onclick="main('off')">关灯</button>
<script type="text/javascript">
    function main(status) {
        x = document.getElementById('dengpao');
        console.log(x);
        if (status == 'on') {
            x.src = "img/on.png";
        } else if (status == 'off') {
            x.src = "img/off.png";
    }
}
</script>
</body>
</html>

2.查看效果。
在这里插入图片描述

4.3 for循环语句

  • for循环:一般用于遍历数据类型的元素进行处理,例如字符串、数组、对象。
//语法。
for (<变量> in <序列>) {
	<代码块>
}

1.遍历数组,通过索引获取元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>控制开关</title>
</head>
<body>
<script type="text/javascript">
    var computer = ["主机","显示器","键盘","鼠标"];
    for(i in computer) {
        // console.log(i)   //获取元素索引。
        console.log(i,computer[i]) // 使用索引获取值
    }
</script>
</body>
</html>

在这里插入图片描述
2.遍历数组,通过匿名函数返回元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>控制开关</title>
</head>
<body>
<script type="text/javascript">
    var computer = ["主机","显示器","键盘","鼠标"];
    computer.forEach(function(e) {
        console.log(e)
    })
</script>
</body>
</html>

在这里插入图片描述
3.遍历对象。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>控制开关</title>
</head>
<body>
<script type="text/javascript">
    var user1 = {name:"卿君",sex:"男",age:"26"};   
    for(let a in user1) {                        //方式一。
        console.log(a+":"+user1[a])
    }
    var user2 = {name:"柏木",sex:"男",age:"28"};
    Object.keys(user2).forEach(function (k) {    //方式二,使用内置对象遍历。
        console.log(k + "——" + user2[k])
    })
</script>
</body>
</html>

在这里插入图片描述

4.4 continue与break语句

  • continue 当满足条件时,跳出本次循环。
  • break 当满足条件时,跳出所有循环。
  • 注意:只有在循环语句中才有效。

1.示例代码。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>控制开关</title>
</head>
<body>
<script type="text/javascript">
    var computer = ["主机","显示器","键盘","鼠标"];
    //不打印第三个元素
    for(i in computer) {
        if (i == "2") {
        continue
    } else {
        console.log(computer[i])
        }
    }
    //不打印第第二个以后的元素
    for(i in computer) {
        if (i == "2") {
        break
    } else {
        console.log(computer[i])
        }
    }
</script>
</body>
</html>

2.查看效果。
在这里插入图片描述

4.5 函数定义与调用

  • 函数:是指一段可以直接被另一段程序或代码引用的程序或代码。
  • 在编写代码时,常将一些常用的功能模块编写成函数,放在函数库中供公共使用,可减少重复编写程序段和简化代码结构。
//语法:
function 函数名称(参数1, 参数2, ...) {
	<代码块>
return <表达式>
}

1.定义函数hello,在按钮中引用函数,点击按钮执行hello函数。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>控制开关</title>
</head>
<body>
<button type="button" onclick="hello()">按钮</button>
<script type="text/javascript">
    function hello() {
        alert("hello world")
    }
</script>
</body>
</html>

在这里插入图片描述
2.传参用法。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>控制开关</title>
</head>
<body>
<button type="button" onclick="hello('卿君','26')">按钮</button>
<script type="text/javascript">
    function hello(name,age) {
        alert("你好,我是"+name+", 今年"+age+"岁。")
        console.log(hello)
    }
</script>
</body>
</html>

在这里插入图片描述

五、选择器

查找元素方法:

  • 通过id(常用)
  • 通过类名
  • 通过标签名

5.1 通过id获取元素

1.示例代码。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js测试</title>
</head>
<body>
<button type="button" id="qingjun">查看内容</button>
<script>
    var x = document.getElementById("qingjun"); //获取id为qingjun的元素
    x.onclick = function () {                  //绑定“查看内容”事件
        alert('好好学习')
    }
</script>
</body>
</html>

2.查看效果。
在这里插入图片描述

5.2 通过标签名获取元素

1.示例代码。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js测试</title>
</head>
<body>
<div id="main">
    <p>Hello world!1</p>
    <p>Hello world!2</p>
    <p>Hello world!3</p>
</div>
<script type="text/javascript">
    var x = document.getElementById("main");  //document表示当前页面,获取id为main的元素,返回的是一个集合。
    var y = x.getElementsByTagName("p"); // 获取集合中的p标签,通过下标获取。
    document.write("div中的第二段文本是:" + y[1].innerHTML); //向当前文档写入内容
</script>
</body>
</html>

2.查看效果。
在这里插入图片描述

六、JS操作HTML

6.1 插入内容

1.向id=bb的标签写入内容。

<p id="bb"></p>
<script type="text/javascript">
    var x = document.getElementById('bb');  //获取id为main的元素
    x.innerHTML="Hello"   //插入内容Hello。
</script>

2.查看结果。
在这里插入图片描述

6.2 修改标签属性

1.修改显示图片,修改之前。

<img src="img/3.jpg" alt="" id="aa">

在这里插入图片描述
2.修改之后。

<img src="img/3.jpg" alt="" id="aa">
<script type="text/javascript">
    var x = document.getElementById('aa');
    x.src="img/4.jpg"
</script>

在这里插入图片描述

6.3 改变标签样式

1.修改id=bb标签的颜色。

<p id="bb"></p>
<script type="text/javascript">
    var x = document.getElementById('bb');
    x.innerHTML="Hello"   //先插入内容。
    x.style.color="blue"  //在修改字体颜色
</script>

2.查看结果。
在这里插入图片描述

6.4 获取输入的值

  • 比如提交一个数据框里的内容,点击提交按钮,可以获取到刚刚输入的值供其他功能使用。

1.获取输入框里的内容。

请输入您的姓名: <input type="text" id="cc"><br>
<button type="button" name="text" onclick="main1()">提交</button>  //店家提交按钮执行main1函数。

<script type="text/javascript">
    function main1() {
        var y =  document.getElementById("cc");
        alert(y.value)
    }
</script>

在这里插入图片描述
2.修改其他标签的内容。

#############################################################
<p id="bb"></p>
请输入您的姓名: <input type="text" id="cc"><br>
<button type="button" name="text" onclick="main1()">提交</button>
#############################################################
<script type="text/javascript">
    var x = document.getElementById('bb');    //获取id=bb标签的元素。
    x.innerHTML="Hello"    //向元素插入HTML内容
    function main1() {
        var y =  document.getElementById("cc");
        var s = document.getElementById("bb");
        s.innerHTML = y.value   //设置s元素的内容是id=c的input值

    }

在这里插入图片描述

6.5 添加标签元素

1.向div中添加一个p标签,并追加标签内容。

<div id="main">
    <p>张三,Java开发</p>
    <p>李四,大数据工程师</p>
    <p>王五,k8s运维</p>
</div>

<script type="text/javascript">
    var x = document.getElementById("main"); //获取id为main的元素
    var y = x.getElementsByTagName("p"); // 返回的是一个集合,下标获取
    var p = document.createElement("p"); //创建p标签
    var t = document.createTextNode("卿君,渗透测试"); //创建添加的文本
    p.appendChild(t); //向创建的p标签追加文本
    var e = document.getElementById("main"); //获取添加的标签父元素
    e.appendChild(p) //向父元素添加新创建的p标签
</script>

2.查看效果。
在这里插入图片描述

6.6 删除元素

1.删除id=main标签的元素。

<div id="main">
    <p>张三,Java开发</p>
    <p>李四,大数据工程师</p>
    <p>王五,k8s运维</p>
</div>

<script type="text/javascript">
    var x = document.getElementById("main"); //获取id为main的元素
    var y = x.getElementsByTagName("p"); // 返回的是一个集合,下标获取
    var p = document.createElement("p"); //创建p标签
    var t = document.createTextNode("卿君,渗透测试"); //创建添加的文本
    p.appendChild(t); //向创建的p标签追加文本
    var e = document.getElementById("main"); //获取添加的标签父元素
    e.remove()   //删除id=main标签的所有元素。
</script>

2.查看效果。
在这里插入图片描述

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

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

相关文章

基于nRF52840 Dongle配合Wireshark对Mesh网络抓包并解析(Nordic)

Mesh网络抓包解析 准备说明配置过滤解密分析 准备 1&#xff09;nRF52840 Dongle 2&#xff09;Mesh节点 3&#xff09;手机作为配网器&#xff08;苹果手机安装nRF Mesh APP&#xff09; 说明 1&#xff09;节点使用的例程目录&#xff1a;nrf5sdkformeshv500src\examples\…

手机录屏方法推荐,3种方法带你玩转

随着智能手机的普及&#xff0c;录制手机屏幕已经成为我们在日常生活中和工作中经常需要进行的操作。有时候&#xff0c;我们想录制一段手机游戏的精彩瞬间或者与朋友分享手机操作的技巧。因此&#xff0c;找到一种方便、简单的手机录屏方法变得尤为重要。本文将介绍手机录屏的…

【IEEE会议】第五届信息与计算机前沿技术国际学术会议(ICFTIC 2023)

第五届信息与计算机前沿技术国际学术会议(ICFTIC 2023) 2023 5th International Conference on Frontiers Technology of Information and Computer 第五届信息与计算机前沿技术国际学术会议(ICFTIC 2023)将在中国青岛举行&#xff0c; 会期是2023年11月17-19日&#xff0c;…

(已解决)ModuleNotFoundError: No module named ‘braceexpand‘

问题描述 import braceexpand, yaml ModuleNotFoundError: No module named braceexpand 解决办法 pip install braceexpand 参考链接https://www.roseindia.net/answers/viewqa/pythonquestions/52026-ModuleNotFoundError-No-module-named-braceexpand.html 其他问题-1 im…

安全狗陈奋:数据安全需要建立在传统网络安全基础之上

8月22日-23日&#xff0c;由创业邦主办的“2023 DEMO WORLD 企业开放式创新大会”在上海顺利举办。 作为国内云原生安全领导厂商&#xff0c;安全狗受邀出席此次活动。 厦门服云信息科技有限公司&#xff08;品牌名&#xff1a;安全狗&#xff09;成立于2013年&#xff0c;致力…

钢筋水泥中的信仰--爱摸鱼的美工(16)

好久没有更新了&#xff0c;爱摸鱼的美工摸鱼太久可&#xff0c;终于出了一起钢筋水泥中的信仰&#xff0c;希望人们更加坚定个人的信仰。

Pandas 2.1发布了

2023年3月1日&#xff0c;Pandas 发布了2.0版本。6个月后&#xff08;8月30日&#xff09;&#xff0c;更新了新的2.1版。让我们看看他有什么重要的更新。 更好的PyArrow支持 PyArrow是在Panda 2.0中新加入的后端&#xff0c;对于大数据来说提供了优于NumPy的性能。Pandas 2.1…

【RabbitMQ】服务启动成功,无法访问localhost:15672(RabbitMQ Management)

问题描述 RabbitMQ 服务已经启动成功&#xff0c;已经安装rabbitmq_management插件&#xff0c;无法访问RabbitMQ Management&#xff08;http://localhost:15672/&#xff09;。 原因分析 15672端口被Microsoft Edge占用。 解决方案 打开cmd终端&#xff0c;输入指令&#…

超声波气象站的功能和作用

超声波气象站是一种先进的测量气象要素的设备&#xff0c;其功能和作用在许多领域中都得到了广泛的应用。下面将从功能和作用两个方面来详细介绍超声波气象站。 一、超声波气象站的功能 ①测量各种气象要素 超声波气象站可以测量多种气象要素&#xff0c;包括温度、湿度、气…

Spark 环境安装与案例演示

Spark 环境安装 一、准备工作 1、hadoop成功安装 2、防火墙关闭 二、解压安装 1、上传 spark 安装包到/tools 目录&#xff0c;进入 tools 下&#xff0c;执行如下命令&#xff1a; tar -zxvf spark-2.1.0-bin-hadoop2.7.tgz -C /training/由于 Spark 的脚本命令和 Hadoop…

【Python】爬虫练习-爬取豆瓣网电影评论用户的观影习惯数据

目录 前言 一、配置环境 1.1、 安装Python 1.2、 安装Requests库和BeautifulSoup库 1.3.、安装Matplotlib 二、登录豆瓣网&#xff08;重点&#xff09; 2.1、获取代理 2.2、测试代理ip是否可用 2.3、设置大量请求头随机使用 2.4、登录豆瓣网 三、爬取某一部热门电影…

Redis 7 第四讲 数据持久化

总体 RDB 介绍 RDB 持久化以指定的时间间隔执行数据集的时间点快照 。 把某一时刻的数据和状态以文件的形式写到磁盘上,即使出现故障宕机,快照文件也不会丢失,数据的可靠性得到保证。快照文件就是RDB(Redis DataBase)文件(dump.rdb) 作用 在指定的时间间隔内将内存中的数…

Redis的缓存穿透,缓存击穿,缓存雪崩

1. 缓存穿透 什么是缓存穿透&#xff1f; 缓存穿透说简单点就是大量请求的 key 是不合理的&#xff0c;根本不存在于缓存中&#xff0c;也不存在于数据库中 。这就导致这些请求直接到了数据库上&#xff0c;根本没有经过缓存这一层&#xff0c;对数据库造成了巨大的压力&…

VB:数值交换

VB&#xff1a;数值交换 Private Sub Command1_Click()Dim a%, b%a 5b 7Call mySwap(a, b)Print "a"; aPrint "b"; b End Sub ByRef 关键字允许子程序直接修改传递的参数的值&#xff0c;而不仅仅是拷贝一份副本&#xff0c;这样可以实现更灵活的数据处…

ArcGIS Maps SDK for JS(二):MapView简介----创建2D地图

文章目录 1 AMD 引用 ArcGIS Maps SDK for JavaScript2 加载相应模块3 创建地图4 创建 2D 视图 view5 确定页面内容6 CSS 样式7 完整代码 本教程使用 AMD 模块&#xff0c;指导您如何在二维地图视图中创建一个简单的地图。 1 AMD 引用 ArcGIS Maps SDK for JavaScript 在 <…

9.物联网LWIP,ip数据报,udp数据报,tcp数据报

一。ip协议原理&#xff08;网络层&#xff09; 1.网络地址转换NAT 我们上网是通过运营商向我们提供的IP地址来上网的&#xff0c;并不是自身的IP地址&#xff0c;所以这就需要网络地址转换NAT的帮助。即内网访问外网所需要的ip转换装置。 2.ip数据报 &#xff08;1&#xff…

延长Flash存储器使用寿命的研究

发布时间&#xff1a;2009年12月15日   引 言 随着嵌入式系统在数码相机、数字摄像机、移动电话、MP3音乐播放器等移动设备中越来越广泛的应用&#xff0c;Flash存储器已经逐步取代其他半导体存储元件&#xff0c;成为嵌入式系统中主要数据和程序载体。Flash存储器又称闪存&…

黑马最新MybatisPlus教程!帮你实现快速开发

天下武功&#xff0c;唯快不破。在互联网世界中&#xff0c;更甚。产品更新要快、迭代要快、开发速度那必须得快。 在追求“快”的这条路上&#xff0c;大佬们都会使用上好的开发工具&#xff0c;来帮助自己实现高效开发&#xff0c;其中MybatisPlus便是提速的重要角色。 我们…

selenium+find_elements用法

1、假如我们遇到多个标签的class一样&#xff0c;比如像下面这样的 我们可以采用js语法去定位&#xff0c;比如&#xff1a; document.getElementsByClassName("ant-calendar-picker-input ant-input")[0]

【Vue3 知识第二讲】Vue3新特性、vue-devtools 调试工具、脚手架搭建

文章目录 一、Vue3 新特性1.1 重写双向数据绑定1.1.1 Vue2 基于Object.defineProperty() 实现1.1.2 Vue3 基于Proxy 实现 1.2 优化 虚拟DOM1.3 Fragments1.4 Tree shaking1.5 Composition API 二、 vue-devtools 调试工具三、环境配置四、脚手架目录介绍五、SFC 语法规范解析附…