【javaweb】学习日记Day2 - JavaScript入门

目录

一、引入方式

1、内部脚本

2、外部脚本

二、基础语法 

1、输出语句

2、定义变量类型

3、数据类型

4、运算符

(1)类型转换

5、函数

(1)方法一

(2)方法二

三、对象

1、Array数组

(1)定义

(2)特点

(3)数组常用方法

① length —— 数组长度

② forEach —— 遍历数组中有值的元素

简化版forEach   箭头函数

③ push —— 添加元素到数组末尾

④ splice —— 删除元素

2、String字符串

(1)定义

(2)字符串常用方法

① length —— 字符串长度

② charAt() —— 返回指定位置的字符

③ indexOf() —— 检索字符串下标

④ trim() —— 去除字符串两边空格

⑤ substring(strat,end) —— 提取字符串中两个指定索引间的字符

3、JSON

(1)JS自定义对象

(2)JSON定义

(3)JSON和JS互相转换方法

4、BOM  浏览器对象模型

(1)Window 浏览器窗口对象

① 属性

② 方法

(2)Navigator  浏览器对象

(3)Screen  屏幕对象

(4)History  历史记录对象

(5)Location  地址栏对象

5、DOM  文档对象模型

(1)Document  整个文本对象

① 根据id获取,返回单个Element对象

② 根据标签名获取,返回Element对象数组

③ 根据name属性获取,返回Element对象数组

④ 根据class属性获取,返回Element对象数组

(2)Element  元素对象

(3)Attribute  属性对象

(4)Text  文本对象

(5)Comment  注释对象

(6)DOM案例

四、事件监听

1、事件绑定

(1)通过HTML标签中的事件属性绑定

(2)通过DOM元素属性绑定

2、常见事件

3、案例 

五、Vue 前端框架 - 双向数据绑定

1、vue快速入门

2、Vue常用指令

(1)v-bind   v-model

① v-bind

② v-model

③ 效果演示

(2)v-on

(3)v-if   v-show

① v-if

② v-show

③ 效果演示

(4)v-for

3、Vue案例

4、Vue生命周期


一、引入方式

1、内部脚本

  • 代码必须位于<script></script>标签之间
  • 可以在html文档中放置在任意地方,放置任意数量的<script></script>
  • 一般把脚本置于<body>底部,可改善显示速度
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>网页</title><script>alert('你在找这个框框吗?');</script></head>
<body></body>
</html>

2、外部脚本

  • 外部JS文件只包含JS代码,不包含<script>标签
<script src="js/demo.js"></script>

二、基础语法 

1、输出语句

  • 浏览器弹出警告框
alert("Hello World!");
  • 写入html,在浏览器显示
document.write("Hello World!");
  • 写入浏览器控制台
console.log("Hello World!");

2、定义变量类型

  • var:可以存放类型不同的变量,全局变量,可以重复声明
  • let:局部变量,所声明的变量只在let关键字所在的代码块内有效,不允许重复声明
  • const:声明一个只读的常量,值不可改变

3、数据类型

  • number:数字
  • string:字符串,单双引皆可
  • boolean
  • null
  • undefined:当声明的变量未初始化时,该变量的默认值为undefined
  • 使用 typeof 可以获取数据类型

4、运算符

== 会进行类型转换,===不会进行类型转换

var x=10;alert(a=='10);     //true
alert(a==='10');   //false
alert(a===10);     //true

(1)类型转换

其他类型转换为数字 

alert(parseInt("12"));       //12
alert(parseInt("12ABC"));    //12
alert(parseInt("A12"));      //NaN

5、函数

(1)方法一

function add(a,b)
{return a+b;
}var x=add(10,20);
alert(x);

(2)方法二

var add=function(a,b)
{return a+b;
}var x=add(10,20);
alert(x);

三、对象

1、Array数组

(1)定义

var arr=new Array(1,2,3,4);var arr=[1,2,3,4];

(2)特点

  • 数组长度可变,类型可变
var arr=new Array(1,2,3,4);
arr[10]=50;console.log(arr[10]);   //50
console.log(arr[9]);    //undefinearr[7]=true;
arr[6]="A";console.log(arr);

(3)数组常用方法

① length —— 数组长度

var arr=new Array(1,2,3,4);for(let i = 0; i< arr.length; i++) console.log(arr[i]+" ");

② forEach —— 遍历数组中有值的元素

var arr=new Array(1,2,3,4);
arr[10]=50;arr.forEach(function(e) {console.log(e);
});//输出 1 2 3 4 50

for循环遍历所有元素,包括undefine

简化版forEach   箭头函数
arr.forEach((e)=>{ console.log(e);
});

③ push —— 添加元素到数组末尾

    var arr=new Array(1,2,3,4);arr[10]=50;arr.push(7,8,9,10);console.log(arr);

④ splice —— 删除元素

splice(开始删除下标,删除个数)

    var arr=new Array(1,2,3,4);arr[10]=50;arr.splice(2,2); //删除3和4 splice(开始删除下标,删除个数)console.log(arr);

2、String字符串

(1)定义

    var s=new String("baby");var s1="consecutive";var s2='divine';

(2)字符串常用方法

① length —— 字符串长度

console.log(s.length);

② charAt() —— 返回指定位置的字符

console.log(s.charAt(2));

③ indexOf() —— 检索字符串下标

    var s1="consecutive";var s2='divine';console.log(s1.indexOf("ns"));  //2

④ trim() —— 去除字符串两边空格

    var s=new String("    baby    ");var s1="consecutive";var s2='divine';var t=s.trim();console.log(t);  //baby

⑤ substring(strat,end) —— 提取字符串中两个指定索引间的字符

含头不含尾

    var s=new String("    congratulation!    ");var s1="consecutive";var s2='divine';var t=s.trim();console.log(t.substring(1,6));  //ongra

3、JSON

(1)JS自定义对象

    var user={name:"Roye",age:20,gender:"女",eat() //括号内填参数列表{alert("吃饭饭!");}}alert(user.name);alert(user.age);alert(user.gender);user.eat();

(2)JSON定义

JSON就是通过JS对象标记法书写的文本,多用于数据载体,在网络进行数据传输,比如前后端的信息传输

var 变量名='{"key1":value1,"key2":value2}';var userStr='{"name":"Tom","age":18,"addr":["西安","北京"]}';
value数据类型分为
数据类型形式
数字整数、浮点数
字符串双引号
逻辑值true false
数组方括号
对象花括号
null

(3)JSON和JS互相转换方法

    //将JSON字符串转换为JS对象var jsobject=JSON.parse(userStr);//将JS对象转换为JSON字符串var jsonstr=JSON.stringify(jsobject);
    var userStr='{"name":"Tom","age":18,"addr":["西安","北京"]}';//将JSON字符串转换为JS对象var obj=JSON.parse(userStr);alert(obj.name);
    //将JS对象转换为JSON字符串var jsonstr=JSON.stringify(obj);alert(jsonstr);

4、BOM  浏览器对象模型

BOM:允许JS与浏览器对话,JS将浏览器的各部分封装为对象

(1)Window 浏览器窗口对象

① 属性

  • history:对History对象的只读引用
  • location:用于窗口或框架的Location对象
    • location.href   获取网页地址
    • 跳转到其他网页 
    •     alert(location.href);location.href="https://blog.csdn.net/weixin_61639349?type=blog";
  • navigator:对Navigator对象的只读引用(导航仪)

② 方法

  • alert():显示带有一段消息和一个确认按钮的警告框
  • confirm():显示带有一段消息以及确认、取消按钮的对话框
    • 点击确认:true,点击取消:false
    •     var flag=confirm("确认要删除吗?");alert(flag);
  • setInterval():按照指定周期(以毫秒计时)来调用函数、计算表达式
    •     var i=0;setInterval(() => {i++;console.log("定时器执行了"+i+"次");}, 2000);

  • setTimeout():在指定毫秒数后弹出一次
    setTimeout(() => {alert("js");},3000);

(2)Navigator  浏览器对象

(3)Screen  屏幕对象

(4)History  历史记录对象

(5)Location  地址栏对象

5、DOM  文档对象模型

DOM:将标记语言的各部分封装为对应的对象

JS通过DOM,可以对HTML进行操作:

  • 改变HTML元素内容
  • 改变HTML元素样式CSS
  • 对HTML DOM事件作出反应
  • 添加和删除HTML元素

(1)Document  整个文本对象

① 根据id获取,返回单个Element对象

var h1=document.getElementById('h1');

② 根据标签名获取,返回Element对象数组

var tag=document.getElementsByTagName('tag');

③ 根据name属性获取,返回Element对象数组

var hobbys=document.getElementsByName('hobby');

④ 根据class属性获取,返回Element对象数组

var clss=document.getElementsByClassName('cls');
<body><div class="cls">深海鳕鱼堡</div><br><div class="cls">双层芝士牛堡</div><br><input type="checkbox" name="food"> 生椰拿铁<input type="checkbox" name="food"> 爆浆阿华田奶茶<input type="checkbox" name="food"> 椰香咖喱鸡饭
</body></html><script>//将【深海鳕鱼堡】标签更改为【经典意式肉酱面】var div=document.getElementsByClassName("cls");var t=div[0];t.innerHTML="经典意式肉酱面";  //将文本内容更改为新的
</script>

(2)Element  元素对象

(3)Attribute  属性对象

(4)Text  文本对象

(5)Comment  注释对象

(6)DOM案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>网页</title><style>#h1{display: block;margin: 0 auto;}.cls{text-align: center;}</style>
</head><body><img id='h1' src="./dpimg/off.gif"><br><br><div class="cls">深海鳕鱼堡</div><br><div class="cls">双层芝士牛堡</div><br><input type="checkbox" name="food"> 生椰拿铁<input type="checkbox" name="food"> 爆浆阿华田奶茶<input type="checkbox" name="food"> 椰香咖喱鸡饭
</body></html><script>//1、将灯泡点亮var img=document.getElementById("h1");img.src = "./dpimg/on.gif";//2、在所有div标签后加上字体var divs=document.getElementsByClassName("cls");for (let i = 0;i< divs.length; i++)  {var t=divs[i];if(i==0) t.innerHTML+=" <font color='red'>今日特卖七折起!</font>";else t.innerHTML+=" <font color='red'>超人气爆款!</font>";}//3、使复选框呈现选中状态var ins=document.getElementsByName("food");for (let i = 0; i < ins.length; i++) {const t = ins[i];t.checked=true;}</script>

四、事件监听

1、事件绑定

(1)通过HTML标签中的事件属性绑定

<body><input type="button" id="bt1" value="按钮1" onclick="on()">
</body><script>function on(){alert("哎呀呀!我被点击啦!");}
</script>
</html>

(2)通过DOM元素属性绑定

<body><input type="button" id="bt2" value="按钮2">
</body><script>var t=document.getElementById("bt2").onclick=function(){alert("不要点我!痛啊!");}
</script>
</html>

2、常见事件

常见事件
事件名说明
onclick鼠标单击事件
onblur元素失去焦点
onfoucs元素获得焦点
onload某个页面或图像加载完成
onsubmit当表单提交时触发
onkeydown键盘某个键被按下
onmouseover鼠标被移到某元素上
onmouseout鼠标从某元素移开

3、案例 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>网页</title><style>#h1{display: block;margin: 0 auto;}.cls{text-align: center;}.center{text-align: center;}</style>
</head><body><img id='h1' src="./dpimg/off.gif"><br><br><input type="button" value="点亮" onclick="on()" id="h1"><br><input type="button" value="熄灭" onclick="off()" id="h1"><br>    <input type="text" id="h1" name="area" value="ROYE HAPPY" onfocus="lower()" onblur="upper()"><br><div class="cls">深海鳕鱼堡</div><br><div class="cls">双层芝士牛堡</div><br><div class="center"><input type="checkbox" name="food"> 生椰拿铁<input type="checkbox" name="food"> 爆浆阿华田奶茶<input type="checkbox" name="food"> 椰香咖喱鸡饭<br><br></div><div class="center"><input type="button" value="全选" onclick="checkAll()" ><input type="button" value="反选" onclick="checkNull()"></div>
</body></html><script>//1、通过按钮控制灯泡亮暗function on(){var img=document.getElementById("h1"); //获取灯泡图片img.src="./dpimg/on.gif";}function off(){var img=document.getElementById("h1");img.src="./dpimg/off.gif";}//2、输入框聚焦后,显示小写;离焦后,显示大写function lower(){var txt=document.getElementsByName("area");txt[0].value=txt[0].value.toLowerCase();}function upper(){var txt=document.getElementsByName("area");  // 注意用name获取对象,获取的是数组!txt[0].value=txt[0].value.toUpperCase(); }//3、在所有div标签后加上字体var divs=document.getElementsByClassName("cls");for (let i = 0;i< divs.length; i++)  {var t=divs[i];if(i==0) t.innerHTML+=" <font color='red'>今日特卖七折起!</font>";else t.innerHTML+=" <font color='red'>超人气爆款!</font>";}//4、全选:全部打勾;反选:全部取消var ck=document.getElementsByName("food");function checkAll(){for (let i = 0; i < ck.length; i++) {const e = ck[i];e.checked=true;}}function checkNull(){for (let i = 0; i<ck.length; i++) {const e = ck[i];e.checked=false;}}</script>

五、Vue 前端框架 - 双向数据绑定

1、vue快速入门

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue-快速入门</title><script src="./vue.js"></script> <!-- 引入js vue文件 -->
</head><body><!-- 编写视图层展示 --><div id="app"><input type="text" v-model="message">{{message}}    <!-- 插值表达式 --></div>
</body><script>//定义vue对象new Vue({el:"#app",  //vue接管的区域data:{message:"Hello Vue"}})
</script>
</html>

2、Vue常用指令

指令作用
v-bind为HTML标签绑定属性值,如设置href,css样式
v-model表单元素上创建双向数据绑定
v-on为HTML标签绑定事件
v-if条件性渲染某元素,判定为true渲染,否则不渲染
v-else-if
v-else
v-show根据条件展示某元素,区别在于切换的是display属性的值
v-for列表渲染,遍历

(1)v-bind   v-model

① v-bind

为 HTML标签 绑定属性值,如设置href,css样式

<a v-bind:href="url"> 容也同学 </a><a :href="url"> 容也同学 </a>

② v-model

在 表单 元素上创建双向数据绑定

<input type="text" v-model="url">

③ 效果演示

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue-快速入门</title><script src="./vue.js"></script> <!-- 引入js vue文件 -->
</head><body><!-- 编写视图层 --><div id="app"><a :href="url">Roye的csdn博客</a><br><a v-bind:href="url">神秘链接</a><br><input type="text" v-model="url"></div>
</body><script>//定义vue对象new Vue({el:"#app",  //vue接管的区域data:{url:"https://blog.csdn.net/weixin_61639349?spm=1000.2115.3001.5343"}})
</script>
</html>

当更改文本框的链接内容时,前两个链接地址也会跟着改变

       

 跟浏览器网站的搜索框是不是很像!

(2)v-on

为HTML标签绑定事件

<input type="button" value="按钮1" v-on:click="handle()">
<input type="button" value="按钮2" @click="handle()">
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue-快速入门</title><script src="./vue.js"></script> <!-- 引入js vue文件 -->
</head><body><!-- 编写视图层 --><div id="app"><input type="button" value="按钮1" v-on:click="handle()"><input type="button" value="按钮2" @click="handle()">        </div>
</body><script>//定义vue对象new Vue({el:"#app",  //vue接管的区域data:{url:"https://blog.csdn.net/weixin_61639349?spm=1000.2115.3001.5343"},methods:{handle:function(){alert('坚持就会胜利!');}}})
</script>
</html>

(3)v-if   v-show

① v-if

按条件渲染

<span v-if="age<=35">年轻人</span>       
<span v-else-if="age>35 && age<60">中年人</span>
<span v-else>老年人</span>

② v-show

按条件展示

<span v-show="age<=35">年轻人</span>

③ 效果演示

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue-快速入门</title><script src="./vue.js"></script> <!-- 引入js vue文件 -->
</head><body><!-- 编写视图层 --><div id="app">年龄<input type="text" v-model="age">经判定,为:<span v-if="age<=35">年轻人</span>       <span v-else-if="age>35 && age<60">中年人</span><span v-else>老年人</span><br><br>年龄<input type="text" v-model="age">经判定,为:<span v-show="age<=35">年轻人</span><span v-show="age>35 && age<60">中年人</span><span v-show="age>=60">老年人</span></div>
</body><script>//定义vue对象new Vue({el:"#app",  //vue接管的区域data:{age:20,},methods:{}})
</script>
</html>

  

(4)v-for

<div v-for="(元素变量名-自定义 , 下标-从0开始) in 定义的数组"> {{显示的视图}}</div>

<div v-for="x in addr">{{x}}</div><br><br><div v-for="(x,i) in addr">{{i+1}}:{{x}}</div>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue-快速入门</title><script src="./vue.js"></script> <!-- 引入js vue文件 -->
</head><body><!-- 编写视图层 --><div id="app"><div v-for="x in addr">{{x}}</div><br><br><div v-for="(x,i) in addr">{{i+1}}:{{x}}</div></div>
</body><script>//定义vue对象new Vue({el:"#app",  //vue接管的区域data:{addr:["西安","北京","上海","福建"]},methods:{}})
</script>
</html>

 

3、Vue案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue-快速入门</title><script src="./vue.js"></script> <!-- 引入js vue文件 -->
</head><body><!-- 编写视图层 --><div id="app"><table border="1" cellspacing="0" width="800px"><tr><th>编号</th><th>姓名</th><th>年龄</th><th>性别</th><th>成绩</th><th>等级</th></tr><tr align="center" v-for="(x,i) in users">   <!--遍历展示data的数据 --><td>{{i+1}}</td><td>{{x.name}}</td><td>{{x.age}}</td><td><span v-if="x.gender==1">男</span><span v-else>女</span></td><td>{{x.score}}</td><td><span v-if="x.score>=90">优秀</span><span v-else-if="x.score<90 && x.score>=60">及格</span><span v-else style="color: red;">不及格</span></td></tr></table></div>
</body><script>//定义vue对象new Vue({el:"#app",  //vue接管的区域data:{users:[{name:"张曼",age:42,gender:2,score:78},{name:"百雀羚",age:28,gender:2,score:59},{name:"张晓军",age:60,gender:1,score:45},{name:"容宝",age:20,gender:2,score:100}]},methods:{}})
</script>
</html>

4、Vue生命周期

状态阶段周期
beforeCreate创建前
created创建后
beforeMount载入前
mounted挂载完成
beforeUpdate更新前
update更新后
beforeDestory销毁前
destoryed销毁后

每触发一个生命周期,会自动执行一个生命周期的方法

<script>//定义vue对象new Vue({el:"#app",  //vue接管的区域data:{},methods:{},mounted(){alert("挂载完成!");}})
</script>

mounted:挂载完成,vue初始化成功,html页面渲染成功。(发送请求到服务端,加载数据)

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

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

相关文章

设计HTML5表单

HTML5基于Web Forms 2.0标准对HTML4表单进行全面升级&#xff0c;在保持简便、易用的基础上&#xff0c;新增了很多控件和属性&#xff0c;从而减轻了开发人员的负担。表单为访问者提供了与网站进行互动的途径&#xff0c;完整的表单一般由控件和脚本两部分组成。 1、认识HTML…

Martin_DHCP_V3.0 (DHCP自动化泛洪攻击GUI)

Github>https://github.com/MartinxMax/Martin_DHCP_V3.0 首页 Martin_DHCP_V3.0 自动化DHCP洪泛攻击 Martin_DHCP_V3.0 使用方法 安装三方库 #python3 1.RunMe_Install_Packet.py 攻击路由器 #python3 Martin_DHCP_Attack.py 填写网卡 填写攻击次数 开始运行

【Linux】进程地址空间

目录 一、回顾我们以前学习的地址空间二、进程地址空间三、进程地址空间的作用四、解决一个地址出现两个值的问题 一、回顾我们以前学习的地址空间 这个内存布局真是的我们实实在在的内存嘛&#xff1f; 答案是不是的 下面我们来验证 1 #include<stdio.h>2 #include<a…

腾讯云CVM服务器竞价实例是什么?和按量计费有什么区别?

腾讯云服务器CVM计费模式分为包年包月、按量计费和竞价实例&#xff0c;什么是竞价实例&#xff1f;竞价实例和按量付费相类似&#xff0c;优势是价格更划算&#xff0c;缺点是云服务器实例有被自动释放风险&#xff0c;腾讯云服务器网来详细说下什么是竞价实例&#xff1f;以及…

linux I/O性能优化

Linux 文件系统 磁盘和文件系统的关系&#xff1a; 磁盘为系统提供了最基本的持久化存储。 文件系统则在磁盘的基础上&#xff0c;提供了一个用来管理文件的树状结构。 文件系统工作原理 索引节点和目录项 文件系统&#xff0c;本身是对存储设备上的文件&#xff0c;进行组织…

elementui form组件出现英文提示

今天让解决一个bug&#xff0c;是表单组件提示词会出现英文。 问题情景如下&#xff1a; 有时会出现中文&#xff0c;有时会出现英文。 解决方法&#xff1a; 经查看&#xff0c;代码采用的是elementui的form组件&#xff0c;在el-form-item中使用了required属性&#xff0c;同…

实时安全分析监控加强网络安全

网络犯罪分子只需几分钟&#xff0c;有时甚至几秒钟即可泄露敏感数据。但是&#xff0c;IT 团队可能无法在数周内发现这些违规行为。通常&#xff0c;这些违规行为是由外部方或客户发现的&#xff0c;到那时为时已晚。随着网络漏洞的激增&#xff0c;对安全分析的需求空前高涨。…

idea 打开java项目后新建的模块中,java文件夹需要变成蓝色,以及resources文件夹变成三条杠的

idea 打开java项目后新建的模块中&#xff0c;java文件夹需要变成蓝色&#xff0c;以及resources文件夹变成三条杠的方法 再选择modules&#xff0c;找到需要变蓝的文件夹&#xff0c;点击sources即可 同理resources文件夹变成三条杠也只需要找到对应文件夹&#xff0c;点击re…

Java项目作业~ 通过html+Servlet+MyBatis,完成站点信息的添加功能

需求&#xff1a; 通过htmlServletMyBatis&#xff0c;完成站点信息的添加功能。 以下是站点表的建表语句&#xff1a; CREATE TABLE websites (id int(11) NOT NULL AUTO_INCREMENT,name char(20) NOT NULL DEFAULT COMMENT 站点名称,url varchar(255) NOT NULL DEFAULT ,…

如何快速搭建app自动化环境编写用例?

使用Airtest 作为测试开发工程师&#xff0c;快速搭建app自动化环境并编写用例可以使用Airtest解决方案来实现。Airtest是一款基于Python的全平台UI自动化测试框架&#xff0c;支持多种移动设备和模拟器&#xff0c;同时集成了丰富的图像识别和手势操作功能。 以下是使用Airt…

通过nvm切换nodejs版本

下载&#xff1a; 1.下载nvm地址&#xff1a; https://github.com/coreybutler/nvm-windows/releases 下载该安装包&#xff0c;下载后无需配置就可以使用&#xff0c;十分方便。 简单说明一些包&#xff1a; nvm - noinstall.zip &#xff1a; 这个是绿色免安装版本&#…

[数据集][目标检测]道路坑洼目标检测数据集VOC格式1510张2类别

数据集格式&#xff1a;Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;1510 标注数量(xml文件个数)&#xff1a;1510 标注类别数&#xff1a;2 标注类别名称:["keng","…

实验三 图像分割与描述

一、实验目的&#xff1a; &#xff08;1&#xff09;进一步掌握图像处理工具Matlab&#xff0c;熟悉基于Matlab的图像处理函数。 &#xff08;2&#xff09;掌握图像分割方法&#xff0c;熟悉常用图像描述方法。 二、实验原理 1.肤色检测 肤色是人类皮肤重要特征之一&#xff…

【分布式】Viewstamped Replication Revisited

篇前感悟&#xff1a; 阅读分布式系统文章的意义其实并不在于你个人真正地去开发这样一个基于这种协议的系统&#xff0c;因为真正去开发一个高可用的分布式系统实在是太难了&#xff08;对我来说…&#xff09;更多的还是汲取其中的思想&#xff0c;包括设计思路&#xff0c;优…

计算机网络:网络字节序

目录 一、字节序1.字节序概念2.字节序的理解&#xff08;1&#xff09;大端模式存储数据&#xff08;2&#xff09;小端模式存储数据 二、网络字节序 一、字节序 1.字节序概念 字节序&#xff1a;内存中存储多字节数据的顺序。 难道存储数据还要看顺序吗&#xff1f; yes。内…

Opencv-C++笔记 (17) : 模板匹配

文章目录 1--概念2-- 方法3 结果3.1 ROI区域的获取使用自适应目标匹配 1–概念 opencv 提供了一个专门用于模板匹配的函数 cv::matchTemplate();其调用方式如下&#xff1a; void cv::matchTemplate(cv::InputArray image, // 用于搜索的输入图像, 8U 或 32F, 大小 W-Hcv::Inpu…

2023年初中信息技术学科暑假备课

目录 2023年初中信息技术学科暑假备课1. 创意空间1.1 教师的空间1.2 学生的空间1.3 关于FTP服务器设置 2. 什么是编程2.1 编程语言2.2 人人都应学好编程2.3. 编程难吗&#xff1f;2.4 python用途 3. 开发环境3.1 打开IDLE3.2 IDLE窗口3.2.1 shell窗口和编辑窗口 4. 项目式教学4…

开发测试框架一 - 创建springboot工程及基础操作

一、创建及运行方式 1. 从官网导入&#xff1a; 注意&#xff1a;由于我的java版本是1.8&#xff1b;所以选中了spring2.7.14&#xff1b;如果你的java版本是9及以上&#xff0c;选中spring3相关的同时Java 版本也要对应起来 2. 创建第一个get请求 创建Controller package及…

Golang下载安装

目录 1. 下载压缩包 2. 解压 3. 查看SDK是否安装成功 4. 配置环境变量 5. 查看环境变量是否配置成功 1. 下载压缩包 官网下载地址&#xff1a; All releases - The Go Programming Language Windows64位选择如下下载&#xff1a; 2. 解压 解压后内容如下&#xff1a; …

uniapp-微信小程序篇

uniapp-微信小程序篇 一、创建项目(以Vue3TS 项目为示例) 可以通过命令行的方式创建也可以通过HBuilderX进行创建&#xff08;通过HBuilderX创建的项目建议选择最简单的模板&#xff09;&#xff0c;个人建议使用命令行方式。 (1) 命令行方式&#xff1a; npx degit dcloudio…