当前位置: 首页 > news >正文

网页开发 JS基础

目录

JS概述

基本语法

数据类型内置方法

DOM对象

查找标签

绑定事件

操作标签

jQuery

查找标签

绑定事件

操作标签

Ajax请求

数据接口

前后端分离

ajax的使用


JS概述

一门弱类型的编程语言,属于基于对象和基于原型的脚本语言.

1 直接编写<script>console.log('hello yuan')</script>
2 导入文件<script src="hello.js"></script>

基本语法

通过代码来进行学习把

// (1)变量声明赋值
var x = 10;  // 如果不写var则是全局变量// (2)数据类型
var age = 10
var name = "yuan"
var isMarried = false
var names = ["rain","eric","yuan"]
var info = {name:"yuan",age:18,isMarried:false}var info2 = {"name": "yuan","age":22,"sex": true,"son": {"name":"alex","age": 38},"hobby": ["篮球","唱","跳"]
}// (3)运算符
+ - * / ++
+=
> <   <=. >=. ===. !==
&& || !// (4)流程控制语句// 分支语句
if(条件){// 条件为true时,执行的代码}else{// 条件为false时,执行的代码}  switch(条件){case 结果1:// 满足条件执行的结果是结果1时,执行这里的代码..break;case 结果2:// 满足条件执行的结果是结果2时,执行这里的代码..break;...default:// 条件和上述所有结果都不相等时,则执行这里的代码}// 循环语句
while(循环的条件){// 循环条件为true的时候,会执行这里的代码}
// 循环三要素
for(1.声明循环的开始; 2.条件; 4. 循环的计数){// 3. 循环条件为true的时候,会执行这里的代码
}  // (5)函数function add(x,y){return x + y
}
add()

数据类型内置方法

字符串内置方法

var str = "hello world";
console.log( str.length );
str.toUpperCase()
str.toLowerCase()
str.slice(3,6);
str.split(" ");
str.trim();

数组内置方法

var arr = [1,2,3,4,5];
arr.push(6); // 给数组后面追加成员
arr.pop(); // 删除最后一个成员作为返回值arr.shift() // shift是将数组的第一个元素删除
arr.unshift(0)  // unshift是将value值插入到数组的开始var arr = ["a","b","c"];
arr.splice(1,1);
arr.splice(1,0,"b")
arr.splice(1,1,"B")arr.reverse();// slice(开始下标,结束下标)  切片,开区间
arr.slice(1,3)// filter() 高阶函数, 对数组的每一个成员进行过滤,返回符合条件的结果
var arr = [4, 6, 5, 7];function func(num) {  // 也可以使用匿名函数或者箭头函数if (num % 2 === 0) {return num;}
}var ret = arr.filter(func);  // 所有的函数名都可以作为参数传递到另一个函数中被执行
console.log(ret);//  map() 对数组的每一个成员进行处理,返回处理后的每一个成员
var arr = [1, 2, 3, 4, 5];
var ret = arr.map((num) => {return num ** 3;
});
console.log(ret); // [1, 8, 27, 64, 125]

序列化

方法描述
JSON.stringify(obj)把obj对象转换成json格式字符串,会移除对象方法
JSON.parse(str)把符合json语法的字符串转换成js对象

DOM对象

DOM (document Object Model: 文档对象模型)

// 整个html文档,会保存一个文档对象document
// console.log( document ); // 获取当前文档的对象

 

查找标签

  • 直接查找标签

document.getElementsByTagName("标签名")
document.getElementById("id值")
document.getElementsByClassName("类名")

1、方法的返回值是dom对象还是数组

2、document对象可以是任意dom对象,将查询范围限制在当前dom对象

  • 导航查找标签

elementNode.parentElement           // 父节点标签元素
elementNode.children                // 所有子标签
elementNode.firstElementChild       // 第一个子标签元素
elementNode.lastElementChild        // 最后一个子标签元素
elementNode.nextElementSibling     // 下一个兄弟标签元素
elementNode.previousElementSibling  // 上一个兄弟标签元素
  • CSS选择器查找

document.querySelector("css选择器")  //根据css选择符来获取查找到的第一个元素,返回标签对象(dom对象)
document.querySelectorAll("css选择器"); // 根据css选择符来获取查找到的所有元素,返回数组
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
​
​
<div id="i1">DIV1</div>
​
<div class="c1">DIV</div>
<div class="c1">DIV</div>
<div class="c1">DIV</div>
​
​
<div class="outer"><div class="c1">item</div>
</div>
​
​
<div class="c2"><div class="c3"><ul class="c4"><li class="c5" id="i2">111</li><li>222</li><li>333</li></ul></div>
</div>
​
<script>
​// 直接查找
​var ele = document.getElementById("i1");  // ele就是一个dom对象console.log(ele);
​var eles = document.getElementsByClassName("c1"); // eles是一个数组 [dom1,dom2,...]console.log(eles);
​var eles2 = document.getElementsByTagName("div"); // eles2是一个数组 [dom1,dom2,...]console.log(eles2);
​var outer = document.getElementsByClassName("outer")[0];var te = outer.getElementsByClassName("c1");console.log(te);
​// 导航查找
​var c5 = document.getElementsByClassName("c5")[0];console.log(c5);  // c5是一个DOM对象
​console.log(c5.parentElement.lastElementChild);  // 返回值是dom对象console.log(c5.parentElement.children);  // 返回值是dom对象数组console.log(c5.nextElementSibling.nextElementSibling);console.log(c5.parentElement.children);
​// css选择器
​var dom = document.querySelector(".c2 .c3 .c5");console.log(":::",dom);
​var doms = document.querySelectorAll("ul li");console.log(":::",doms);</script>
​
</body>
</html>

 

绑定事件

  • 静态绑定 :直接把事件写在标签元素中

<div id="div" onclick="foo(this)">click</div>
​
<script>function foo(self){           // 形参不能是this;console.log("foo函数");console.log(self);   }
</script>
  •   动态绑定:在js中通过代码获取元素对象,然后给这个对象进行后续绑定
<p id="i1">试一试!</p>
​
<script>
​var ele=document.getElementById("i1");
​ele.onclick=function(){console.log("ok");console.log(this);    // this直接用};
​
</script>

一个元素本身可以绑定多个不同的事件, 但是如果多次绑定同一个事件,则后面的事件代码会覆盖前面的事件代码

多个标签绑定事件

<ul><li>111</li><li>222</li><li>333</li><li>444</li><li>555</li>
</ul>
​
​
<script>
​var eles = document.querySelectorAll("ul li");for(var i=0;i<eles.length;i++){eles[i].onclick = function (){console.log(this.innerHTML)}}
​
</script>

 

操作标签

<标签名 属性1=“属性值1” 属性2=“属性值2”……>文本</标签名>
  • 文本操作

<div class="c1"><span>click</span></div>
​
<script>
​var ele =document.querySelector(".c1");ele.ondblclick = function (){// 查看标签文本console.log(this.innerHTML)// 设置标签文本this.innerHTML = "<a href='#'>yuan</a>"}
​
​
</script>
  • value操作

像input标签,select标签以及textarea标签是没有文本的,但是显示内容由value属性决定

 <input type="text" id="i1" value="yuan">

测试代码

<script>
​// input标签var ele1 =document.getElementById("i1");console.log(ele1.value);ele1.onmouseover = function (){this.value = "alvin"}
​
</script>
  • css样式操作

<p id="i1">Hello world!</p>
​
​
<script>var ele = document.getElementById("i1");ele.onclick = function (){this.style.color = "red"}
</script>
  • 属性操作

elementNode.setAttribute("属性名","属性值")    
elementNode.getAttribute("属性名")       
elementNode.removeAttribute("属性名");

并不是所有属性都可以像value那样操作。

  • class属性操作

elementNode.className
elementNode.classList.add
elementNode.classList.remove

案例:tab切换

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
​<style>*{margin: 0;padding: 0;}
​.tab{width: 800px;height: 300px;/*border: 1px solid red;*/margin: 200px auto;}
​.tab ul{list-style: none;}
​.tab-title{background-color: #f7f7f7;border: 1px solid #eee;border-bottom: 1px solid #e4393c;}
​.tab .tab-title li{display: inline-block;padding: 10px 25px;font-size: 14px;}
​li.current {background-color: #e4393c;color: #fff;cursor: default;}
​.hide{display: none;}
​
​</style>
</head>
<body>
​
​
<div class="tab"><ul class="tab-title"><li class="current" index="0">商品介绍</li><li class="" index="1">规格与包装</li><li class="" index="2">售后保障</li><li class="" index="3">商品评价</li></ul>
​<ul class="tab-content"><li>商品介绍...</li><li class="hide">规格与包装...</li><li class="hide">售后保障...</li><li class="hide">商品评价...</li></ul>
</div>
​
<script>var titles = document.querySelectorAll(".tab-title li");var contents = document.querySelectorAll(".tab-content li");for (var i = 0;i<titles.length;i++){titles[i].onclick = function () {// (1) 触发事件标签拥有current样式for (var j = 0;j<titles.length;j++){titles[j].classList.remove("current")}
​console.log(this);this.classList.add("current");
​// (2) 显示点击title对应的详情内容var index = this.getAttribute("index");// console.log(this.getAttribute("index"));// console.log(contents[index]);
​for (var z = 0;z<contents.length;z++){contents[z].classList.add("hide");}
​contents[index].classList.remove("hide");}} 
​
</script>
​
</body>
</html>

jQuery

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等

目前在市场上, 1.x , 2.x, 3.x 功能的完善在1.x, 2.x的时候是属于删除旧代码,去除对于旧的浏览器兼容代码。3.x的时候增加es的新特性以及调整核心代码的结构

根本上jquery就是一个写好的js文件,所以想要使用jQuery的语法必须先引入到本地

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>

查找标签

/*
​
基本选择器 :
​
$("#id")   
$(".class")  
$("element")  
$(".class,p,div")
​
后代选择器:
$(".outer div") 
​
筛选器:$().first()       $().last()          $().eq()     导航查找:  
​
$("div").children(".test")     
$("div").find(".test")  // 向下查找兄弟标签 
$(".test").next()               
​
// 查找所有兄弟标签  
$("div").siblings()  // 查找父标签:         
$(".test").parent() */

 

绑定事件

1. on 和 off
// 绑定事件
$().on("事件名",匿名函数)
​
// 解绑事件,给指定元素解除事件的绑定
$().off("事件名")
​
2. 直接通过事件名来进行调用
$().事件名(匿名函数)

 

操作标签

  • 文本操作

$("选择符").html()     // 读取指定元素的内容,如果$()函数获取了有多个元素,提取第一个元素
$("选择符").html(内容) // 修改内容,如果$()函数获取了多个元素, 则批量修改内容
  • value操作

$().val()
  • 属性操作

//读取属性值$("选择符").attr("属性名");   // 获取非表单元素的属性值,只会提取第一个元素的属性值
//操作属性$("选择符").attr("属性名","属性值");  // 修改非表单元素的属性值,如果元素有多个,则全部修改
  • css样式操作

获取样式
$().css("样式属性");   // 获取元素的指定样式属性的值,如果有多个元素,只得到第一个元素的值
​
操作样式
$().css("样式属性","样式值").css("样式属性","样式值");
$().css({"样式属性1":"样式值1","样式属性2":"样式值2",....})
  • class 属性操作

$().addClass("class1  class2 ... ...")   // 给获取到的所有元素添加指定class样式
$().removeClass() // 给获取到的所有元素删除指定class样式
$().toggleClass() // 给获取到的所有元素进行判断,如果拥有指定class样式的则删除,如果没有指定样式则添加
  • 节点操作

$("").append(content|fn)      // $("p").append("<b>Hello</b>");

 

Ajax请求

Ajax,一般中文称之为:"阿贾克斯",是英文 “Async Javascript And Xml”的简写,译作:异步js和xml传输数据技术。

ajax的作用: ajax可以让js代替浏览器向后端程序发送http请求,与后端通信,在用户不知道的情况下操作数据和信息,从而实现页面局部刷新数据/无刷新更新数据。

所以开发中ajax是很常用的技术,主要用于操作后端提供的数据接口,从而实现网站的前后端分离

ajax技术的原理是实例化js的XMLHttpRequest对象,使用此对象提供的内置方法就可以与后端进行数据通信。

数据接口

数据接口,也叫api接口,表示后端提供操作数据/功能的url地址给客户端使用。

客户端通过发起请求向服务端提供的url地址申请操作数据【操作一般:增删查改】

同时在工作中,大部分数据接口都不是手写,而是通过函数库/框架来生成。

前后端分离

在开发Web应用中,有两种应用模式:

  • 前后端不分离

  • 前后端分离

ajax的使用

ajax的使用必须与服务端程序配合使用,但是开发中我们对于ajax请求的数据,不仅仅可以是自己写的服务端代码,也可以是别人写好的数据接口进行调用。

数据接口:

# 天气接口
https://v0.yiketianqi.com/api?unescape=1&version=v91&appid=43656176&appsecret=I42og6Lm&ext=&cityid=&city=
​
# 音乐接口
https://c.y.qq.com/v8/fcg-bin/fcg_v8_toplist_cp.fcg?g_tk=5381&uin=0&format=json&inCharset=utf-8&outCharset=utf-8%C2%ACice=0&platform=h5&needNewCode=1&tpl=3&page=detail&type=top&topid=36&_=1520777874472%E4%BD%9C%E8%80%85%EF%BC%9Atsia%E9%93%BE%E6%8E%A5%EF%BC%9Ahttps://www.jianshu.com/p/67e4bd47d981

相关文章:

网页开发 JS基础

目录 JS概述 基本语法 数据类型内置方法 DOM对象 查找标签 绑定事件 操作标签 jQuery 查找标签 绑定事件 操作标签 Ajax请求 数据接口 前后端分离 ajax的使用 JS概述 一门弱类型的编程语言,属于基于对象和基于原型的脚本语言. 1 直接编写<script>console…...

如何在财税行业查找批量客户?

现在市场上代记账公司也不算少&#xff0c;做过这行的都知道&#xff0c;最初呢行业竞争不强&#xff0c;都是靠地推、老客户转介绍&#xff0c;或者长期以往的蹲守各个地区的工商注册服务中心&#xff0c;找那些才注册企业的老板或者创业者。但是&#xff0c;随着市场经济的发…...

IntelliJ IDEA详细完整安装教程

IntelliJ IDEA 是一款强大的Java集成开发环境&#xff0c;以下是安装和使用教程&#xff1a; 1. 下载IntelliJ IDEA&#xff1a;访问JetBrains官网&#xff08;jetbrains.com&#xff09;&#xff0c;点击“Download”按钮&#xff0c;选择适合自己操作系统的版本进行下载。 2.…...

【.NET Core】Linq查询运算符(一)

【.NET Core】Linq查询运算符&#xff08;一&#xff09; 文章目录 【.NET Core】Linq查询运算符&#xff08;一&#xff09;一、概述二、筛选数据三、投影运算3.1 Select 3.2 SelectMany3.3 Zip3.4 Select 与 SelectMany 四、Set&#xff08;设置&#xff09;运算4.1 Distinct…...

Python sorted函数及用法以及如何用json模块存储数据

Python sorted函数及用法 sorted() 函数与 reversed() 函数类似&#xff0c;该函数接收一个可迭代对象作为参数&#xff0c;返回一个对元素排序的列表。 在交互式解释器中测试该函数&#xff0c;可以看到如下运行过程&#xff1a; >>> a [20, 30, -1.2, 3.5, 90, 3.…...

使用opencv将sRGB格式的图片转换为BT.2020格式【sRGB】【BT.2020】

将sRGB格式的图片转换为BT.2020格式涉及到两个步骤&#xff1a;首先将sRGB转换到线性RGB&#xff0c;然后将线性RGB转换到BT.2020。这是因为sRGB图像通常使用伽马校正&#xff0c;而BT.2020工作在线性色彩空间中。 从sRGB到线性RGB&#xff1a;sRGB图像首先需要进行伽马校正解码…...

聊天注意事项

聊天成功的核心就是双方都能舒服 有些人不会聊天是缺乏引导性 聊天聊两句话就没了 聊天要把话题引导向对方 从倾诉者变为倾听者 才能不断交流 沟通不是一个人的独角戏 每个人都渴望被理解 要注意倾听别人说的话 不要只顾自己说一大堆&#xff0c;别人都瞌睡了 不要查户口式问…...

12.5 作业

1&#xff0c; 以下是一个简单的比喻&#xff0c;将多态概念与生活中的实际情况相联系&#xff1a; 比喻&#xff1a;动物园的讲解员和动物表演 想象一下你去了一家动物园&#xff0c;看到了许多不同种类的动物&#xff0c;如狮子、大象、猴子等。现在&#xff0c;动物园里有…...

深入理解指针3

hello&#xff0c;各位小伙伴&#xff0c;本篇文章跟大家一起继续深入学习指针&#xff0c;感谢大家对我上一篇的支持&#xff0c;如有什么问题&#xff0c;还请多多指教 如果本篇文章对你有帮助&#xff0c;还请各位点点赞&#xff01;&#xff01;&#xff01; 话不多说&am…...

大数据环境下在线考试系统安全策略研究

摘 要 随着云计算、物联网、电子商务、企业信息化等的飞速发展&#xff0c;以及智能终端和各种检测、感应设备的普及和建设&#xff0c;全球逐渐进入信息化、网络化&#xff0c;由此产生了指数爆炸般的数据增长&#xff0c;一个大规模生产、分享和应用的数据的时代正在开启&am…...

Python中程序的异常处理

Python程序一般对输入有一定要求&#xff0c;担当实际输入不满足程序要求时&#xff0c;可能会产生程序的运行错误。Python语言使用的保留太容易try和except进行异常处理&#xff01; try: 语句块1 except: 语句块2 语句块1是正常执行的程序内容&#xff0c;当这个语句块发生异…...

有趣的代码——有故事背景的程序设计3

这篇文章再和大家分享一些有“背景”的程序设计&#xff0c;希望能够让大家学到知识的同时&#xff0c;对编程学习更感兴趣&#xff0c;更能在这条路上坚定地走下去。 目录 1.幻方问题 2.用函数打印九九乘法表 3.鸡兔同笼问题 4.字数统计 5.简单选择排序 1.幻方问题 幻方又…...

聚观早报 |国行PS5轻薄版开售;岚图汽车11月交付7006辆

【聚观365】12月2日消息 国行PS5轻薄版开售 岚图汽车11月交付7006辆 比亚迪推出12月限时优惠 特斯拉正式交付首批Cybertruck 昆仑万维发布「天工 SkyAgents」平台 国行PS5轻薄版开售 索尼最新的PlayStation5主机&#xff08;CFI-2000型号组-轻薄版&#xff09;国行版本正…...

Kafka 保证消息消费全局顺序性

当有消息被生产出来的时候&#xff0c;如果没有指定分区或者指定 key &#xff0c;那么消费会按照【轮询】的方式均匀地分配到所有可用分区中&#xff0c;但不一定按照分区顺序来分配 我们知道&#xff0c;在 Kafka 中消费者可以订阅一个或多个主题&#xff0c;并被分配一个或多…...

3分钟在CentOS 7上离线安装Docker

在CentOS 7上离线安装Docker的详细步骤如下&#xff1a; 环境检查和准备 检查内核版本&#xff1a;Docker要求系统为64位且内核版本至少为3.10。使用命令uname -r查看内核版本。 检查CentOS版本&#xff1a;通过命令cat /etc/redhat-release查看版本信息。 更新yum包&#xff0…...

GaussDB数据库SQL系列-触发器

目录 一、前言 二、触发器概念 三、GaussDB数据库中的触发器 1、语法格式 2、创建步骤 3、注意事项 4、附&#xff1a;表和视图上支持的触发器种类 四、GaussDB数据库中的示例 示例一、在GaussDB数据库中创建一个触发器&#xff0c;以便在插入新记录时自动将记录的创建…...

网工学习10-IP地址

一、IP地址概念 IP地址是一个32位的二进制数&#xff0c;它由网络ID和主机ID两部份组成&#xff0c;用来在网络中唯一的标识的一台计算机。网络ID用来标识计算机所处的网段&#xff1b;主机ID用来标识计算机在网段中的位置。IP地址通常用4组3位十进制数表示&#xff0c;中间用…...

二百零八、Hive——HiveSQL异常:Select查询数据正常,但SQL语句加上group by查询数据为空

一、目的 在HiveSQL的DWD层中&#xff0c;需要对原始数据进行去重在内的清洗&#xff0c;结果一开始其他数据类型的清洗工作都正常&#xff0c;直到碰到转向比数据。 一般的SQL查询有数据&#xff0c;但是加上group by以后就没数据&#xff1b; 一般的SQL查询有数据&#xf…...

Docker—共享应用程序

现在您已经构建了一个映像&#xff0c;可以共享它。要共享Docker映像&#xff0c;您必须使用Docker注册表。默认注册表是Docker Hub&#xff0c;是您使用的所有图像的来源。 Docker ID&#xff08;Docker标识&#xff09; Docker ID允许您访问Docker Hub&#xff0c;这是世界上…...

Linux横向移动

Linux横向移动 主机存活探测 shell for i in 192.168.111.{1..254}; do if ping -c 3 -w 3 $i &>/dev/null; then echo $i is alived; fi; done 或者 for k in $( seq 1 255);do ping -c 1 192.168.1.$k|grep "ttl"|awk -F "[ :]" {print $4}; d…...

Ubuntu 20.0 + mysql 8.0 用户和密码修改

第一步 下载&#xff08;简单,注意联网&#xff09;Ubuntu 终端输入以下两行命令 (1) 数据库的服务端及客户端数据库的开发软件包 sudo apt-get install mysql-server mysql-client (2) 数据库的开发软件包 sudo apt-get install libmysqlclient-dev 第二步 查看是否安装成功 …...

看懂lscpu的输出

文章目录 1. lscpu1.1 Architecture1.2 逻辑核心数1.3 缓存1.4 CPU型号1.5 NUMA架构1.5.1 CPU多核架构1.5.2 多CPU Socket架构 2. cat /proc/cpuinfo2.1 关键字段 1. lscpu 通过lscpu查看当前系统的CPU信息。 [hadoopserver3 ~]$ lscpuArchitecture: x86_64 …...

RoPE旋转位置编码浅析

RoPE旋转位置编码浅析 本文介绍了旋转位置编码RoPE在大模型中的广泛应用,包括Llama、Mistral 7B、Baichuan、ChatGLM、Qwen、…等。由于计算资源限制,大模型通常在较小的上下文长度中进行训练,导致在推理超出预训练长度时性能显著下降。为了解决这个问题,涌现了许多基于Ro…...

在 SQL Server 中备份和恢复数据库的最佳方法

在SQL Server中&#xff0c;创建备份和执行还原操作对于确保数据完整性、灾难恢复和数据库维护至关重要。以下是备份和恢复过程的概述&#xff1a; 方法 1. 使用 SQL Server Management Studio (SSMS) 备份和还原数据库 按照 SSMS 步骤备份 SQL 数据库 打开 SSMS 并连接到您…...

Java8 根据自定义属性去重

一、需求背景 有一个List集合,里面有n个Answer成员,成员种有m个属性,即: List<Answer> answers ...,现在我需要根据Answer的某一个属性对List去重(属性不固定),应该如何实现呢? 二、解决办法 需要满足上述需求&#xff0c;并不难&#xff0c;我们可以使用Java8提供的…...

Netty网络编程

入门案例 1、服务器端代码 public class HelloServer {public static void main(String[] args) {// 1、启动器&#xff0c;负责装配netty组件&#xff0c;启动服务器new ServerBootstrap()// 2、创建 NioEventLoopGroup&#xff0c;可以简单理解为 线程池 Selector.group(n…...

层三交换机解析(Layer 3 Switch)层3交换机

文章目录 层三交换机解析1. 概述1.1 什么是层三交换机1.2 层三交换机与路由器、二层交换机的比较 2. 层三交换机的工作原理2.1 基于MAC地址的转发2.2 基于IP地址的转发 3. 层三交换机的配置4. 常见问题与解答4.1 我应该使用路由器还是层三交换机&#xff1f;4.2 层三交换机可以…...

expect自动化交互

目录 1. expect作用&#xff1a; 2. expect语言用法&#xff1a; 3. 实例 1. expect作用&#xff1a; 是建立在tcl语言基础上的一个工具&#xff0c;常被用于进行自动化控制和测试&#xff0c;解决shell脚本中交互的相关问题。 2. expect语言用法&#xff1a; spawn开启免…...

探究两个互联网时代的差异,Web 2.0 与 Web 3.0 区别

Web 2.0 的特征 首先我们来了解一下 Web 2.0 的特征都有哪些。 用户生成内容&#xff1a;Web 2.0 时代以用户生成内容为特征&#xff0c;用户可以轻松地在网络上分享、创建和编辑信息。社交媒体平台、博客等网站的兴起使得用户成为信息的创造者&#xff0c;网络逐渐从被动浏览…...

c++基本常见错误总结

我们无论是在学习中还是在工作当中&#xff0c;总是会遇到各种各样的c编译错误问题&#xff0c;经常会有一种情况就是上一次好像遇到过这种问题&#xff0c;但是就是想不起来了&#xff08;我就是这样&#xff09;所以下面这一篇文章就是总结自己遇到的编译以及运行错误。 注意…...

做美工的网站/上海专业的seo公司

xampp的安装和thinkphp的部署一、xampp的安装1、xampp的下载&#xff1a;https://www.apachefriends.org/zh_cn/index.htmlxampp for linux v5.6.12下载的文件为&#xff1a;xampp-linux-x64-5.6.12-0-installer.run2、安装其他权限无法安装。切换到linux的root权限下&#xff…...

苏州网站制作/青岛百度推广优化

玩手机&#xff0c;玩相机&#xff0c;一直是从大学毕业以来每天的必想。我的手机生涯从毕业第三年开始&#xff0c;一晃快十年了&#xff0c;友人网是我常去的地方&#xff0c;当初注册的 “ 常来看看 ” 把后来的未来预测的很准。从玩手机到研究手机&#xff0c;现在集中自有…...

建设电商网站/培训机构不退费最有效方式

linux shell命令下我们可以通过相关命令关闭和重启计算机&#xff0c;下面由学习啦小编为大家搜集整理了linux shell的关机命令是什么的相关知识&#xff0c;希望对大家有帮助!linux shell的关机命令问题描述对于Linux系统而言&#xff0c;许多时候是用于服务器之类的&#xff…...

男生跟男生做口视频网站/优化网站技术

原标题&#xff1a;Linux下iptables防火墙用法规则详解管理网络流量是系统管理员必需处理的最棘手工作之一&#xff0c;我们必需规定连接系统的用户满足防火墙的传入和传出要求&#xff0c;以最大限度保证系统免受。很多用户把 Linux 中的iptables当成一个防火墙&#xff0c;从…...

discuz可以做公司网站/发稿服务

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼public List> findMovieByType(String moviename,String type,String spinnerActor,String spinnerYear,String television,int pageNum,int numSize){int m (pageNum-1)*DbUtil.page_Num;List> movieTypeList new ArrayLi…...

手游网站建设的宗旨/网站维护需要多长时间

2020年对华为来说&#xff0c;无疑是十分艰难的一年&#xff0c;通信设备与消费电子两大业务都受到了不小的冲击&#xff0c;令人担忧。但是&#xff0c;华为不仅挺过了2020年&#xff0c;还取得了一系列优异成绩&#xff0c;一次次证明着自己的实力。日前&#xff0c;华为又有…...