Promise模块化编程ES6新特性

文章目录

  • Promise&模块化编程
    • 1.Promise基本介绍
    • 2.快速入门
        • 1.需求分析
        • 2.原生ajax + jQuery
        • 3.Promise使用模板
    • 3.课后练习
        • 1.原生ajax + jQuery
        • 2.promise
    • 4.模块化编程基本介绍
    • 5.CommonJS基本介绍
    • 6.ES5模块化编程
        • 1.题目
        • 2.示意图
        • 3.代码实例—普通导入导出
          • function.js
          • use.js
        • 4.代码实例—对象解构导入导出
          • function.js
          • use.js
    • 7.ES6模块化编程
        • 1.基本介绍
        • 2.示意图
        • 3.批量导出
          • function.js
          • use.js
        • 4.定义时导出
          • function.js
          • use.js
        • 5.默认导出
          • function.js
          • use.js
        • 6.注意事项和细节
        • 7.课后练习
          • 1.练习一
          • 2.练习二
          • 3.练习三
            • 1.a.js
            • 2.b.js
            • 3.c.js
        • 8.ES6导入导出小结
          • 1.定义时和批量
          • 2.默认
  • ES6新特性
    • 1.基本介绍
    • 2.let生成变量
        • 1.新建项目
        • 2.基本介绍
        • 3.代码实例
    • 3.const常量(只读变量)
    • 4.解构赋值
        • 1.基本介绍
        • 2.数组解构赋值
        • 3.对象解构
    • 5.模板字符串+表达式
    • 6.对象新特性
        • 1.声明对象简写
        • 2.声明对象方法简写
        • 3.对象运算符扩展
    • 7.箭头函数
        • 1.基本介绍
        • 2.箭头函数实例1
        • 3.箭头函数与对象解构
    • 8.课后作业
        • 1.练习一
        • 2.练习二
        • 3.练习三
        • 4.练习四
        • 5.练习五
    • 9.ES6小结
        • 1.对象解构
        • 2.箭头函数简写

Promise&模块化编程

1.Promise基本介绍

image-20240213153714664

2.快速入门

1.需求分析

image-20240213154523642

2.原生ajax + jQuery

image-20240213160754050

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script type="text/javascript" src="script/jquery-3.6.0.min.js"></script><script>$.ajax({url: "data/monster.json",success(resultData) {console.log("第一次请求得到的数据:", resultData);//如果成功获取数据则进行第二次请求$.ajax({url: `data/monster_detail_${resultData.id}.json`,success(resultData) {console.log("第二次请求得到的数据", resultData);},error(err) {console.log(err)}})},error(err) {console.log(err)}})</script>
</head>
<body></body>
</html>

image-20240213160811611

3.Promise使用模板
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script type="text/javascript" src="script/jquery-3.6.0.min.js"></script><script>//url,data是要发送请求的参数,以后如果要添加可以修改function get(url, data) {return new Promise((resolve, reject) => {$.ajax({//url,data是要发送请求的参数,以后如果要添加可以修改url: url,data: data,success(resultData) {resolve(resultData);},error(err) {reject(err);}})})}//1.返回一个Promise对象然后调用then方法get("data/monster.json").then((resultData) => {//第一次ajax请求成功后的处理代码console.log("第一次请求返回的数据=", resultData);//2.再返回一个Promise对象return get(`data/monster_detail_${resultData.id}.json`);//3.get这个整体是返回了一个Promise对象,然后调用then方法}).then((resultData) => {//第二次ajax请求成功后的处理代码console.log("第二次请求返回的数据=", resultData);return get(`data/monster_sex_${resultData.sex}.json`);}).then((resultData) => {//第三次ajax请求成功后的处理代码console.log("第三次请求返回的数据=", resultData);}).catch(err => { //最后一次就直接处理异常console.log("promise请求异常=", err)})</script>
</head>
<body></body>
</html>

3.课后练习

image-20240214093016581

image-20240214093035476

image-20240214093046358

image-20240214093053222

1.原生ajax + jQuery
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script type="text/javascript" src="script/jquery-3.6.0.min.js"></script><script>$.ajax({url: "data/student_100.json",success(resultData) {//第一次请求成功console.log(resultData)$.ajax({url: `data/class_${resultData.class_id}.json`,success(resultData) {//第二次请求成功console.log(resultData)$.ajax({url: `data/school_${resultData.school_id}.json`,success(resultData) {console.log(resultData)},error(err) {console.log(err)}})},error(err) {console.log(err)}})},error(err) {console.log(err);}})</script>
</head>
<body></body>
</html>

image-20240214094443994

2.promise
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script type="text/javascript" src="script/jquery-3.6.0.min.js"></script><script>//url,data是要发送请求的参数,以后如果要添加可以修改function get(url, data) {return new Promise((resolve, reject) => {$.ajax({//url,data是要发送请求的参数,以后如果要添加可以修改url: url,data: data,success(resultData) {resolve(resultData);},error(err) {reject(err);}})})}get("data/student_100.json").then(resultData => {console.log(resultData);return get(`data/class_${resultData.class_id}.json`);}).then(resultData => {console.log(resultData);return get(`data/school_${resultData.school_id}.json`);}).then(resultData => {console.log(resultData);})</script>
</head>
<body></body>
</html>

image-20240214095248624

4.模块化编程基本介绍

image-20240214095947531

image-20240214100057660

5.CommonJS基本介绍

image-20240214100442200

6.ES5模块化编程

1.题目

image-20240214100625215

2.示意图

image-20240214101050513

3.代码实例—普通导入导出
function.js
//定义对象,变量,常量,函数
let age = 19;
const PI = 3.14;
const sum = function (a, b) {return parseInt(a) + parseInt(b);
}
let obj = {name: "孙显圣",age: 24
}
//导出对象
module.exports = {myage: age,PI: PI,sum: sum,obj: obj
}
use.js
//导入
const m = require("./function")
//使用
console.log(m.PI)
console.log(m.obj)
console.log(m.myage)
console.log(m.sum(1,2))
4.代码实例—对象解构导入导出
function.js
//定义对象,变量,常量,函数
let age = 19;
const PI = 3.14;
const sum = function (a, b) {return parseInt(a) + parseInt(b);
}
let obj = {name: "孙显圣",age: 24
}
//导出对象,简写形式
exports = {//这里简写的话,就是名字和变量名相同age,PI,sum,obj
}
use.js
//对象解构导入
const {PI, sum} = require("./function")
//使用
console.log(PI)
console.log(sum(1,2))

7.ES6模块化编程

1.基本介绍

image-20240214103650522

2.示意图

image-20240214103951263

3.批量导出
function.js
//定义对象,变量,常量,函数
let age = 19;
const PI = 3.14;
const sum = function (a, b) {return parseInt(a) + parseInt(b);
}
let obj = {name: "孙显圣",age: 24
}
//导出对象,简写形式
export {//这里简写的话,就是名字和变量名相同age,PI,sum
}
use.js
//ES6对象解构导入
//注意:这里的名字必须与导出的名字相同(因为是对象解构)
import {age,PI,sum
} from "./function"
//使用
console.log(age, PI, sum(1,2))
4.定义时导出
function.js
//定义对象,变量,常量,函数
//将两个变量在定义时导出
export let age = 19;
export const PI = 3.14;const sum = function (a, b) {return parseInt(a) + parseInt(b);
}
let obj = {name: "孙显圣",age: 24
}
use.js
//ES6对象解构导入
//注意:这里的名字必须与导出的名字相同(因为是对象解构)
import {age,PI,
} from "./function"
//使用
console.log(age, PI)
5.默认导出
function.js
//定义对象,变量,常量,函数
//默认导出
export default {age: 19,PI: 3.14,sum(a, b) {return a + b;},obj: {name: "孙显圣"}
}
use.js
//默认导入
import m from "./function";
console.log(m.obj.name);
console.log(m.sum(1,2));
console.log(m.age);
6.注意事项和细节

image-20240214110816863

7.课后练习
1.练习一

image-20240214110907387

//定义对象,变量,常量,函数
let cat = {name: "小白",age: 12,cry() {console.log("猫在叫")}
}//定义时导出
export let dog = {name: "小黑",age: 13,cry() {console.log("狗在叫")}
}// //批量导出
// export {
//   cat,
//   dog
// }//默认导出
export default {cat1 : {name: "小白",age: 12,cry() {console.log("猫在叫")}}
}
2.练习二

image-20240214140617711

// //批量导入
// import {
//   dog,
//   cat
// } from "./function";console.log(dog.name)
console.log(cat.name)//定义时导入
import {dog} from "./function";console.log(dog.age)//默认导入
import m from "./function"
console.log(m.cat1.age)
3.练习三

image-20240214140641414

1.a.js
export let dog = {hi() {console.log("hi")}
}
2.b.js
let dog = {say() {console.log("say")}
}
export {dog
}
3.c.js
//使用a的dog
import {dog} from "./a"
dog.hi()
//使用b的dog
import {dog} from "./b"
dog.say()
8.ES6导入导出小结
1.定义时和批量
  1. 都使用export导出
  2. 使用import 对象解构 from “文件位置”导入
2.默认
  1. 使用export default导出,导出的直接是一整个js对象
  2. 使用import 变量 from “文件位置”导入

ES6新特性

1.基本介绍

image-20240213105945370

2.let生成变量

1.新建项目

image-20240213110241112

2.基本介绍

image-20240213123736776

3.代码实例
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>{//let细节一,let声明的变量,如果在代码块中,则作用域在代码块中var name = "121";let age = 12;}//console.log里面如果是逗号,如果是对象则会输出对象的值!console.log("name=", name);console.log("age=", age); //这里会报错!//let细节二:var可以声明多次,let只能声明一次var num = 2;var num = 4;let num1 = 3;let num1 = 4; //这里会报错,不允许重复定义//let细节三:let不存在变量提升,var存在变量提升,所谓变量提升,就是认不认可在变量使用之后定义console.log(a); //var在后面定义的这里就是undefined类型了,就是认可变量已经定义了,只是没有值var a = "3";console.log(b); //这里直接会爆语法错误let b = "4";</script>
</head>
<body></body>
</html>

3.const常量(只读变量)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>//1.常量必须赋值//2.常量的值不能修改const PI = 3.14console.log("PI=", PI)</script>
</head>
<body></body>
</html>

image-20240213124335902

4.解构赋值

1.基本介绍

image-20240213124459793

2.数组解构赋值
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>let arr = [1, 2, 3];//传统let x = arr[0];let y = arr[1];let z = arr[2];console.log(x, y, z);//ES6方式1let [a, b, c] = arr;console.log(a, b, c)//ES6方式2let [a1, b1, c1] = [100, 200, 300];console.log(a1, b1, c1)</script>
</head>
<body></body>
</html>

image-20240213130306590

3.对象解构
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>let obj = {name: "牛魔王", age: 12};//普通解构console.log("name", obj.name, "age", obj.age);//ES6对象解构//1.只要保证名字跟对象里面的相同即可,顺序无所谓//2.需要使用{}let {age, name} = obj;console.log("name", name, "age", age);//这样也可以let {age, name} = {name: "牛魔王", age: 12}//方法的参数使用对象解构function f({age, name}) {console.log("fage=", age, "fname=", name);}f(obj)</script>
</head>
<body></body>
</html>

image-20240213131539109

5.模板字符串+表达式

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>//1.模板字符串就是使用反引号引起来,这样字符串,换行就会原生输出let str = `helloworld`console.log(str)//2.在模板字符串中是可以使用$()表达式的,类似于EL表达式,可以读取变量,调用函数//读取变量let name = "孙显圣";console.log(`你好 ${name}`)//变量计算let num1 = 2;let num2 = 3;console.log(`num1 + num2 = ${num1 + num2}`)//函数调用function f(name) {return name;}console.log(`name= ${f(name)}` )</script>
</head>
<body></body>
</html>

image-20240213133329621

6.对象新特性

1.声明对象简写
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>const name = "孙显圣";const age = 24;//传统声明对象方式let obj = {name: name, age: age};console.log("obj:" , obj);//ES6声明对象方式let obj1 = {name, age}; //这样声明就相当于name属性的值是name变量,age属性的值是age变量console.log("obj1=", obj1)</script>
</head>
<body></body>
</html>

image-20240213134143016

2.声明对象方法简写
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>//普通对象方法声明let obj = {name: "孙显圣",sayHi: function () {console.log("hi1")}}obj.sayHi();//ES6方法声明简写let obj1 = {sayHi() {console.log("hi2")}}obj1.sayHi()</script>
</head>
<body></body>
</html>

image-20240213135032679

3.对象运算符扩展
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>let name = "大花猫";let age = 23//声明两个对象,name的值都是大花猫let obj1 = {name};let obj2 = {name, age};//传统的赋值let obj3 = obj1;obj3.name = "小花猫"; //obj3跟obj1共享一个对象空间,所以会影响到obj1console.log(obj1.name); //小花猫//拷贝对象,深拷贝,两个引用指向的是不同的对象空间,不会互相影响let obj4 = {...obj2};obj4.name = "中花猫";console.log("obj4", obj4)console.log("obj2", obj2)//合并对象,也是深拷贝,如果是重复的,则后面的覆盖前面的值let obj5 = {...obj1, ...obj2}console.log(obj5)</script>
</head>
<body></body>
</html>

image-20240213140836306

7.箭头函数

1.基本介绍

image-20240213141117466

2.箭头函数实例1
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>//传统函数let fun1 = function (num) {return num;}console.log(fun1(100));//箭头函数let fun2 = (x, y) => {return x + y;}console.log(fun2(1, 3));//一个参数并且一条语句,需要返回的时候,可以简写let fun3 = x => x + 4; //这个箭头函数会返回x + 4//箭头函数也可以传递给函数//定义一个接受参数为函数的一个函数let fun = (fun1) => {console.log(fun1(100))}//调用上面的函数,传进去一个函数,一个参数x,返回x * 5fun(x => x * 5);//传统函数,求n到m的和var f1 = function (n, m) {var res = 0;for (var i = n; i <= m; i++) {res += i;}return res;}console.log(f1(1, 3))//箭头函数let f2 = (n, m) => {let res = 0;for (let i = n; i <= m; i++) {res += i;}return res;}console.log(f2(1,3))</script>
</head>
<body></body>
</html>

image-20240213143743852

3.箭头函数与对象解构
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>let obj = {name: "孙显圣",age: 19}//箭头函数加对象解构let fun = ({name, age}) => {console.log(`name:${name} age:${age}`)}fun(obj)</script>
</head>
<body></body>
</html>

image-20240213150211040

8.课后作业

1.练习一

image-20240213150339999

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>let cat = {name: "jack",age: 10}console.log(`name: ${cat.name} age: ${cat.age}`);</script>
</head>
<body></body>
</html>

image-20240213150615157

2.练习二

image-20240213150640938

namex是undefined,原因是没有与对象中的属性名字相对应

3.练习三

image-20240213150759161

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>let name = "周星驰";let job = "演员";let obj = {name,job,fun() {console.log(`name: ${this.name} job: ${this.job}`)}};obj.fun()</script>
</head>
<body></body>
</html>
4.练习四

image-20240213151514098

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>let cal = {oper: "/",arr: [1, 2, 3, 5]}let fun = ({oper, arr}) => {let res = 0;//遍历数组for (let i = 0; i < arr.length; i++) {switch (oper) {case "+":res += arr[i];case "-":res -= arr[i];case "*":res *= arr[i];case "/":res /= arr[i];}}console.log(res)}fun(cal)</script>
</head>
<body></body>
</html>

image-20240213152444103

5.练习五

image-20240213152548917

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>let f8 = (arr, fun) => {console.log("结果:", fun(arr))}let f = arr => {let res = 0;for (let i = 0; i < arr.length; i++) {res += arr[i];}return res;}f8([1,2,3,4,5], f)</script>
</head>
<body></body>
</html>

image-20240213153138461

9.ES6小结

1.对象解构
2.箭头函数简写
  1. 参数:只有一个时可以去掉()
  2. 函数体:只有一行并且要返回的时候可以去掉{}

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

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

相关文章

Spring容器结构

文章目录 1.基本介绍1.Spring5官网2.API文档3.Spring核心学习内容4.几个重要概念 2.快速入门1.需求分析2.入门案例1.新建Java项目2.导入jar包3.编写Monster.java4.src下编写Spring配置文件1.创建spring配置文件&#xff0c;名字随意&#xff0c;但是需要放在src下2.创建Spring …

C语言-指针

1. 指针是什么 指针理解的2个要点&#xff1a; 1.1. 指针是内存中一个最小单元的编号&#xff0c;也就是地址 1.2 平时口语中说的指针&#xff0c;通常指的是指针变量&#xff0c;是用来存放内存地址的变量 总结&#xff1a;指针就是地址&#xff0c;口…

电力系统卫星授时信号安全隔离装置防护方案

电力系统是国家关键基础设施&#xff0c; 电力安全关系国计民生&#xff0c; 是国家安全的重要保障&#xff0c; 与政治安全、经济安全、 网络安全、社会安全等诸多领域密切关联。电网运行情况瞬息万变&#xff0c;为了在其发生事故时能够及时得到处理&#xff0c;需要统一的时…

2.6 类型安全配置属性

无论是Propertes配置还是YAML配置&#xff0c;最终都会被加载到Spring Environment中。 Spring提供了注解Value以及EnvironmentAware接口来将Spring Environment 中的数据注入到属性上&#xff0c;SpringBoot对此进一步提出了类型安全配置属性(Type-safeConfiguration Propert…

【华为笔试题汇总】2024-04-17-华为春招笔试题-三语言题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是KK爱Coding &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为近期的春秋招笔试题汇总&#xff5e; &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f…

华为海思校园招聘-芯片-数字 IC 方向 题目分享——第五套

华为海思校园招聘-芯片-数字 IC 方向 题目分享——第五套 (共9套&#xff0c;有答案和解析&#xff0c;答案非官方&#xff0c;仅供参考&#xff09;&#xff08;共九套&#xff0c;每套四十个选择题&#xff09; 部分题目分享&#xff0c;完整版获取&#xff08;WX:didadida…

OSPF的P2P和Broadcast

OSPF为什么会有P2P和BROADCAST两种类型 OSPF&#xff08;开放最短路径优先&#xff09;协议中存在P2P&#xff08;点对点&#xff09;和BROADCAST&#xff08;广播多路访问&#xff09;两种网络类型&#xff0c;主要是为了适应不同类型的网络环境和需求。具体分析如下&#xf…

ETL工具-nifi干货系列 第十三讲 nifi处理器QueryDatabaseTable查询表数据实战教程

1、处理器QueryDatabaseTable&#xff0c;该组件生成一个 SQL 查询&#xff0c;或者使用用户提供的语句&#xff0c;并执行它以获取所有在指定的最大值列中值大于先前所见最大值的行。查询结果将被转换为 Avro 格式&#xff0c;如下图所示&#xff1a; 本示例通过QueryDatabase…

初识SpringMVC(SpringMVC学习笔记一)

1 、还是熟悉的配方&#xff0c;先创建一个父Maven项目&#xff08;忘记怎么创建项目了就去前面翻笔记&#xff09;&#xff0c;导入通用的配置依赖 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instan…

【Vue3】setup语法糖的使用

文章目录 setup简介使用vite-plugin-vue-setup-extend插件 指定组件名字 setup简介 <script setup> 是在单文件组件 (SFC) 中使用组合式 API 的编译时语法糖 相比较普通的<script> ,它有以下优势&#xff1a; 更少的样板内容&#xff0c;更简洁的代码。能够使用纯…

一种多信号线粒体靶向荧光探针,用于同时区分生物硫醇并实时可视化其在癌细胞和肿瘤模型中的代谢

文献来源:https://www.sciencedirect.com/science/article/pii/S003991402300855X? 该探针应用&#xff1a; 用于区分生物硫醇&#xff0c;并依次检验代谢物 。 实时监测细胞、斑马鱼和肿瘤中的生物硫醇代谢。 一、背景介绍 生物硫醇 &#xff08;1&#xff09;种类 生…

基于springboot实现人口老龄化社区服务与管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现人口老龄化社区服务与管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了人口老龄化社区服务与管理平台的开发全过程。通过分析人口老龄化社区服务与管理平台方面的不足&#xff…

Node.js 中的 RSA 加密、解密、签名与验证详解

引言 在现代的网络通信中&#xff0c;数据安全显得尤为重要。RSA加密算法因其非对称的特性&#xff0c;广泛应用于数据的加密、解密、签名和验证等安全领域。本文将详细介绍RSA算法的基本原理&#xff0c;并结合Node.js环境&#xff0c;展示如何使用内置的crypto模块和第三方库…

Python接口自动化 —— Web接口(2)

1.2.3 HTTP HTTP概念 Hyper Text Transfer Protocal超文本传输协议&#xff0c;基于tcp/ip通信协议来传递数据&#xff0c;属于应用层协议主要特点: 无连接: 每次连接只处理一个请求&#xff0c;服务器处理完请求并受到客户端应答后就断开连接媒体独立。 只要服务器和客…

ActiveMQ 07 集群配置

Active MQ 07 集群配置 官方文档 http://activemq.apache.org/clustering 主备集群 http://activemq.apache.org/masterslave.html Master Slave TypeRequirementsProsConsShared File System Master SlaveA shared file system such as a SANRun as many slaves as requ…

【日常记录】【CSS】SASS循环的使用

文章目录 1、引言2、安装3、举例4、参考链接 1、引言 目前在任何项目框架中&#xff0c;都会有css 预处理器&#xff0c;目前一般使用 sass、less 这俩其中之一&#xff0c;它可以简化css的书写 Sass 是一款强化 CSS 的辅助工具&#xff0c;它在 CSS 语法的基础上增加了变量 (v…

HarmonyOS开发实例:【分布式数据服务】

介绍 分布式数据服务(Distributed Data Service&#xff0c;DDS)为应用程序提供不同设备间数据分布式的能力。通过调用分布式数据接口&#xff0c;应用程序将数据保存到分布式数据库中。通过结合帐号、应用和分布式数据服务对属于不同的应用的数据进行隔离&#xff0c;保证不同…

【kubeEdge】离线部署

部署 kubeEdge 在线部署 在线方式部署直接执行以下命令&#xff0c;会联网下载需要的安装文件执行安装 $ keadm init --advertise-address{ip} --kubeedge-version{version} --kube-config{config_path}&#xff0c; 离线部署 离线准备工作 所有下载操作均在可以联网的机…

VulnHub系列 DC-4靶机 渗透详细过程 | 红队打靶

VulnHub系列 DC-4靶机详细渗透测试过程 目录 VulnHub系列 DC-4靶机详细渗透测试过程一、将靶机导入到虚拟机当中二、渗透流程主机发现端口扫描Web渗透暴力破解命令执行反弹shellSSH暴力破解提权 一、将靶机导入到虚拟机当中 靶机地址&#xff1a; https://download.vulnhub.c…

JVM复习

冯诺依曼模型与计算机处理数据过程相关联&#xff1a; 冯诺依曼模型&#xff1a; 输入/输出设备存储器输出设备运算器控制器处理过程&#xff1a; 提取阶段&#xff1a;输入设备传入原始数据&#xff0c;存储到存储器解码阶段&#xff1a;由CPU的指令集架构ISA将数值解…