JavaScript学习笔记(二)

12、数字

常规用法和java的用法相似,就不再做详细的记录,
JavaScript 数字
以下只记录特殊用法:

12.1 数字字符串运算

  • 在所有数字运算中,JavaScript 会尝试将字符串转换为数字:
var x = "100";
var y = "10";
var z = x / y;       // z 将是 10
var x = "100";
var y = "10";
var z = x - y;      // z 将是 90
var x = "100";
var y = "10";
var z = x + y;       // z 不会是 110(而是 10010)
var x = 100 / "10";     // x 将是 10

12.2 NaN - 非数值(Not a Number)

  • NaN 属于 JavaScript 保留词,指示某个数不是合法数。
var x = 100 / "Apple";  // x 将是 NaN(Not a Number)
  • 可使用全局 JavaScript 函数 isNaN() 来确定某个值是否是数:
var x = 100 / "Apple";
isNaN(x);               // 返回 true,因为 x 不是数
  • NaN 是数,typeof NaN 返回 number
<!DOCTYPE html>
<html>
<body><h1>JavaScript 数字</h1><p>NaN 是数,typeof NaN 返回 number:</p><p id="demo"></p><script>
var x = NaN;
document.getElementById("demo").innerHTML = typeof x;
</script></body>
</html>

运行效果:

Javascript 数字
NaN 是数,typeof NaN 返回 number:number

12.3 Infinity

  • Infinity (或 -Infinity)是 JavaScript 在计算数时超出最大可能数范围时返回的值。
  • 除以 0(零)也会生成 Infinity
var x =  2 / 0;          // x 将是 Infinity
var y = -2 / 0;          // y 将是 -Infinity
  • Infinity 是数:typeOf Infinity 返回 number
typeof Infinity;        // 返回 "number"

12.4 十六进制

var x = 0xFF;             // x 将是 255。
  • 绝不要用前导零写数字(比如 07)。

  • 一些 JavaScript 版本会把带有前导零的数解释为八进制。

  • 默认地,Javascript 把数显示为十进制小数。

  • 但是您能够使用 toString() 方法把数输出为十六进制、八进制或二进制:

var myNumber = 128;
myNumber.toString(16);     // 返回 80
myNumber.toString(8);      // 返回 200
myNumber.toString(2);      // 返回 10000000

12.5 数值可以是对象

  • 使用 == 相等运算符时,相等的数看上去相等
  • === 运算符需要类型和值同时相等
  • 对象无法进行对比
var x = 123;
var y = new Number(123);
var z = new Number(500);// typeof x 返回 number
// typeof y 返回 object// (x == y) 为 true,因为 x 和 y 有相等的值// (x === y) 为 false,因为 x 和 y 的类型不同(=== 运算符需要类型和值同时相等。)// (y == z) 为 false,因为对象无法比较

13、JavaScript BigInt

JavaScript BigInt

14、JavaScript 数字方法

在这里插入图片描述
将变量转换为数字:

在这里插入图片描述

14.1 toString() 方法

  • toString() 方法将数字作为字符串返回。

  • 所有数字方法都可以用于任何类型的数字(文字、变量或表达式)

let x = 123;
x.toString();
(123).toString();
(100 + 23).toString();

14.2 toExponential() 方法

  • toExponential() 返回字符串,其中的数字四舍五入并使用指数表示法书写。

  • 参数定义小数点后的字符数

<script>
let x = 9.656;
document.getElementById("demo").innerHTML =x.toExponential() + "<br>" + x.toExponential(2) + "<br>" + x.toExponential(4) + "<br>" + x.toExponential(6);
</script>

运行结果:

9.656e+0
9.66e+0
9.6560e+0
9.656000e+0

14.3 toFixed() 方法

  • toFixed() 返回一个字符串,其中的数字带有指定位数的小数部分。
<script>
let x = 9.656;
document.getElementById("demo").innerHTML =x.toFixed(0) + "<br>" +x.toFixed(2) + "<br>" +x.toFixed(4) + "<br>" +x.toFixed(6);
</script>

运行效果:

10
9.66
9.6560
9.656000

14.4 toPrecision() 方法

  • toPrecision() 返回一个字符串,其中包含指定长度的数字
<script>
let x = 9.656;
document.getElementById("demo").innerHTML = x.toPrecision() + "<br>" +x.toPrecision(2) + "<br>" +x.toPrecision(4) + "<br>" +x.toPrecision(6);  
</script>

运行效果:

9.656
9.7
9.656
9.65600

14.5 valueOf() 方法

  • valueOf() 以数字形式返回数字。
  • valueOf() 方法在 JavaScript 内部用于将 Number 对象转换为原始值
  • 提示:所有 JavaScript 数据类型都有 valueOf()toString() 方法。
<script>
let x = 123;document.getElementById("demo").innerHTML = x.valueOf() + "<br>" +(123).valueOf() + "<br>" +(100 + 23).valueOf();
</script>

运行效果:

123
123
123

14.6 Number() 方法

  • Number() 方法可用于将 JavaScript 变量转换为数字
  • 如果无法转换数字,则返回 NaN (Not a Number,非数字)。
<script>
document.getElementById("demo").innerHTML = Number(true) + "<br>" +Number(false) + "<br>" +Number("10") + "<br>" + Number("  10") + "<br>" +Number("10  ") + "<br>" +Number(" 10  ") + "<br>" +Number("10.33") + "<br>" + Number("10,33") + "<br>" +Number("10 33") + "<br>" +Number("John");
</script>

运行效果:

1
0
10
10
10
10
10.33
NaN
NaN
NaN
  • 日期上使用的 Number() 方法:
    该示例返回时间的毫秒数

<script>
let x = new Date("1970-01-02");
document.getElementById("demo").innerHTML = Number(x); 
</script>

运行效果:

86400000

14.7 parseInt() 方法

  • parseInt() 解析字符串并返回整数。允许有空格。仅返回第一个数字
  • 如果无法转换数字,则返回 NaN (Not a Number,非数字)。
<script>
document.getElementById("demo").innerHTML = parseInt("-10") + "<br>" +parseInt("-10.33") + "<br>" +parseInt("10") + "<br>" +parseInt("10.33") + "<br>" +parseInt("10 6") + "<br>" +  parseInt("10 years") + "<br>" +  parseInt("years 10");  
</script>

运行效果:

-10
-10
10
10
10
10
NaN

14.8 parseFloat() 方法

  • parseFloat() 解析字符串并返回数字。允许有空格。仅返回第一个数字
  • 如果无法转换数字,则返回 NaN (Not a Number,非数字)。
<script>
document.getElementById("demo").innerHTML = parseFloat("10") + "<br>" +parseFloat("10.33") + "<br>" +parseFloat("10 6") + "<br>" +  parseFloat("10 years") + "<br>" +parseFloat("years 10");    
</script>

运行效果:

10
10.33
10
10
NaN

14.9 Number 对象方法

在这里插入图片描述

14.9.1 Number.isInteger() 方法

  • 如果参数是整数,则 Number.isInteger() 方法返回 true

<script>
document.getElementById("demo").innerHTML =
Number.isInteger(10) + "<br>" + Number.isInteger(10.5);
</script>

运行效果:

true
false

14.9.2 Number.isSafeInteger() 方法

  • 安全整数指的是可以被精确表示为双精度浮点数的整数。

  • 如果参数是安全整数,则 Number.isSafeInteger() 方法返回 true。

<script>
document.getElementById("demo").innerHTML =
Number.isSafeInteger(10) + "<br>" + Number.isSafeInteger(12345678901234567890);
</script>

运行效果:

true
false

注意:
安全整数是从 -(253 - 1) 到 +(253 - 1) 的所有整数。

这是安全的:9007199254740991。这是不安全的:9007199254740992。

14.9.3 Number.parseFloat() 方法

  • Number.parseFloat() 解析字符串并返回数字。

  • 允许有空格。仅返回第一个数字

<script>
document.getElementById("demo").innerHTML = 
Number.parseFloat("10") + "<br>" +
Number.parseFloat("10.33") + "<br>" +
Number.parseFloat("10 20 30") + "<br>" +
Number.parseFloat("10 years") + "<br>" +
Number.parseFloat("years 10");
</script>

运行效果:

10
10.33
10
10
NaN

14.9.4 Number.parseInt() 方法

  • Number.parseInt() 解析字符串并返回整数。

  • 允许有空格。仅返回第一个数字

<script>
document.getElementById("demo").innerHTML = Number.parseInt("-10") + "<br>" +Number.parseInt("-10.33") + "<br>" +Number.parseInt("10") + "<br>" +Number.parseInt("10.33") + "<br>" +Number.parseInt("10 6") + "<br>" +  Number.parseInt("10 years") + "<br>" +  Number.parseInt("years 10");  
</script>

运行效果:

-10
-10
10
10
10
10
NaN

15、JavaScript 数字属性

JavaScript 数字属性

16、JavaScript 数字属性

在这里插入图片描述
详细见JavaScript 数字属性

17、数组

17.1创建数组:

  • var cars = ["Saab", "Volvo", "BMW"];(推荐使用)
  • var cars = new Array("Saab", "Volvo", "BMW");

17.2 访问数组元素

  • var name = cars[0];(访问)
  • cars[0] = "Opel";(修改)
  • var cars = ["Saab", "Volvo", "BMW"]; document.getElementById("demo").innerHTML = cars; (访问完整数组)
  • var person = {firstName:"Bill", lastName:"Gates", age:19};(数组对象)
  • 遍历数组:
    (1)使用for
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><p id="demo"></p><script>var cars = ['A', 'B', 'C'];text = '<ul>';for (var i = 0; i < cars.length; i++) {text += '<li>' + cars[i] + '</li>'}text += '</ul>';document.getElementById('demo').innerHTML = text;</script>
</body></html>

(2)使用 Array.foreach() 函数:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><p id="demo"></p><script>var cars = ['A', 'B', 'C'];text = '<ul>';cars.forEach(myFunction);text += '</ul>';function myFunction(value){text+='<li>'+value+'</li>';}document.getElementById('demo').innerHTML = text;</script>
</body></html>

运行效果:
在这里插入图片描述

  • 添加数组元素:
    (1)向数组添加新元素的最佳方法是使用 push() 方法:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><button onclick="myFunction()">点击添加元素</button><p id="demo"></p><script>var cars = ['A', 'B', 'C'];document.getElementById('demo').innerHTML = cars;function myFunction() {//添加元素cars.push('D');document.getElementById('demo').innerHTML = cars;}</script>
</body></html>

(2)也可以使用 length 属性向数组添加新元素:

  cars[cars.length]='D';

17.3 数组和对象的区别

  • 在 JavaScript 中,数组使用数字索引

  • 在 JavaScript 中,对象使用命名索引

  • 数组是特殊类型的对象,具有数字索引。

17.4 如何识别数组

你可能首先考虑使用typeof,但你要注意的是运算符 typeof 返回 “object
我们可以使用:

Array.isArray(fruits);     // 返回 true

或者

var fruits = ["Banana", "Orange", "Apple", "Mango"];fruits instanceof Array     // 返回 true

18、数组方法

18.1 toString()

  • 把数组转换为数组值(逗号分隔)的字符串。
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><p id="demo"></p><script>var cars = ["A", "B", "C"];document.getElementById('demo').innerHTML = cars.toString();</script>
</body></html>

运行效果:
A,B,C

18.2 join()

  • 可将所有数组元素结合为一个字符串。它的行为类似 toString(),但是您还可以规定分隔符
  <p id="demo"></p><script>var cars = ["A", "B", "C"];document.getElementById('demo').innerHTML = cars.join("*");</script>

运行效果:
ABC

18.3 PoppingPushing

*在处理数组时,删除元素和添加新元素是很简单的。PoppingPushing 指的是:从数组弹出项目,或向数组推入项目

18.4 Popping

  • 数组中删除最后一个元素
  • pop() 方法返回“被弹出”的值
 <p id="demo"></p><script>var cars = ["A", "B", "C","D"];document.getElementById('demo').innerHTML = cars;function myFunction(){cars.pop();document.getElementById('demo').innerHTML = cars;}</script>

点击按钮前:A,B,C,D
点击按钮后:A,B,C

18.5 Pushing

  • push() 方法(在数组结尾处)向数组添加一个新的元素
  • push() 方法返回新数组的长度
<body><button onclick="myFunction()">点击添加一个元素</button><p id="demo"></p><script>var cars = ["A", "B", "C","D"];document.getElementById('demo').innerHTML = cars;function myFunction(){cars.push("E");document.getElementById('demo').innerHTML = cars;}</script>
</body>

点击按钮后:A,B,C,D,E

18.6 shift()unshift() 位移元素

  • 位移与弹出等同,但处理首个元素而不是最后一个。
  • shift() 方法返回被“位移出”的字符串

18.6.1 shift()

  • shift() 方法会删除首个数组元素,并把所有其他元素“位移”到更低的索引。
<body><button onclick="myFunction()">点击</button><p id="demo"></p><script>var cars = ["A", "B", "C","D"];document.getElementById('demo').innerHTML = cars;function myFunction(){cars.shift();document.getElementById('demo').innerHTML = cars;}</script>
</body>

操作前:A,B,C,D
操作后:B,C,D

18.6.2 unshift()

  • unshift() 方法(在开头)向数组添加新元素,并“反向位移”旧元素。
  • unshift() 方法返回新数组的长度。
<body><button onclick="myFunction()">点击</button><p id="demo"></p><script>var cars = ["A", "B", "C","D"];document.getElementById('demo').innerHTML = cars;function myFunction(){cars.unshift("New");document.getElementById('demo').innerHTML = cars;}</script>

操作前:A,B,C,D
操作后:New,A,B,C,D

18.7更改元素

  • (1)通过使用它们的索引号来访问数组元素:
<body><button onclick="myFunction()">点击</button><p id="demo"></p><script>var cars = ["A", "B", "C","D"];document.getElementById('demo').innerHTML = cars;function myFunction(){cars[0]='New';document.getElementById('demo').innerHTML = cars;}</script>
</body>

操作前:A,B,C,D
操作后:New,B,C,D

  • (2)length 属性提供了向数组追加新元素的简易方法:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[fruits.length] = "Kiwi";   
  • (3)delete 运算符来删除元素(不建议使用
    使用 delete 会在数组留下未定义的空洞。请使用 pop() 或 shift() 取而代之。
<body><button onclick="myFunction()">点击</button><p id="demo"></p><script>var cars = ["A", "B", "C","D"];document.getElementById('demo').innerHTML = cars;function myFunction(){delete cars[0];//document.getElementById('demo').innerHTML = cars; //操作后:,B,C,Ddocument.getElementById('demo').innerHTML = cars[0];//操作后:undefined}</script>
</body>

18.8 拼接数组:splice()

18.8.1 拼接数组

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 0, "Lemon", "Kiwi");
  • 第一个参数(2)定义了应添加新元素的位置(拼接)。

  • 第二个参数(0)定义应删除多少元素。

  • 其余参数(“Lemon”,“Kiwi”)定义要添加的新元素。

<body><button onclick="myFunction()">点击</button><p id="demo"></p><script>var cars = ["A", "B", "C", "D"];document.getElementById('demo').innerHTML = cars;function myFunction() {cars.splice(2, 1, "New01", "New02");document.getElementById('demo').innerHTML = cars;}</script>
</body>

运行效果:A,B,New01,New02,D

18.8.2 使用 splice()删除元素

  • 第一个参数(0)定义新元素应该被添加(接入)的位置。

  • 第二个参数(1)定义应该删除多个元素。

  • 其余参数被省略。没有新元素将被添加。

<body><button onclick="myFunction()">点击</button><p id="demo"></p><script>var cars = ["A", "B", "C", "D"];document.getElementById('demo').innerHTML = cars;function myFunction() {cars.splice(0, 1);document.getElementById('demo').innerHTML = cars;}</script>
</body>

运行效果:B,C,D

18.9 合并(连接)数组:concat()

  • 通过合并(连接)现有数组来创建一个新数组:

(1)实例(合并两个数组):

<body><button onclick="myFunction()">点击</button><p id="demo"></p><script>var cars01 = ["A", "B", "C", "D"];var cars02 = ["E", "F", "G", "H"];document.getElementById('demo').innerHTML = cars01;function myFunction() {document.getElementById('demo').innerHTML = cars01.concat(cars02);}</script>
</body>

运行效果:A,B,C,D,E,F,G,H

(2)实例(合并三个数组):

<body><button onclick="myFunction()">点击</button><p id="demo"></p><script>var cars01 = ["A", "B", "C", "D"];var cars02 = ["E", "F", "G", "H"];var cars03 = ["I", "J", "K", "L"];document.getElementById('demo').innerHTML = cars01;function myFunction() {document.getElementById('demo').innerHTML = cars01.concat(cars02,cars03);}</script>
</body>

运行效果:A,B,C,D,E,F,G,H,I,J,K,L

(3)实例(将数组与值合并):

<body><button onclick="myFunction()">点击</button><p id="demo"></p><script>var cars01 = ["A", "B", "C", "D"];document.getElementById('demo').innerHTML = cars01;function myFunction() {document.getElementById('demo').innerHTML = cars01.concat("E","F");}</script>
</body>

运行效果:A,B,C,D,E,F

18.10 裁剪数组:slice()

  • slice() 方法创建新数组。它不会从源数组中删除任何元素
<body><button onclick="myFunction()">点击</button><p id="demo"></p><script>var cars01 = ["A", "B", "C", "D"];document.getElementById('demo').innerHTML = cars01;function myFunction() {// document.getElementById('demo').innerHTML = cars01.splice(1);document.getElementById('demo').innerHTML = cars01.splice(1,2);}</script>
</body>

18.11 自动 toString()

  • 如果需要原始值,则 JavaScript 会自动把数组转换为字符串。
  • 所有 JavaScript 对象都拥有 toString() 方法。

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

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

相关文章

第 5 章理解 ScrollView 并构建 Carousel UI

通过上一章的学习,我相信你现在应该明白如何使用堆栈构建复杂的 UI。当然,在你掌握 SwiftUI 之前,你还需要大量的练习。因此,在深入研究 ScrollView 以使视图可滚动之前,让我们先以一个挑战开始本章。你的任务是创建一个类似于图 1 所示的卡片视图。 …

swp添加池子addLiquidity失败

案发现场 首次添加交易对、一直失败、但是也没提示具体的原因。到这一步就没了、由下图可知、也没看到log、由此可见第一步就失败了。 解决方案 一、添加 工厂KywFactory 添加如下 bytes32 public constant INIT_CODE_PAIR_HASH keccak256(abi.encodePacked(type(KywPair…

注意!短视频的致命误区,云微客教你避开!

为什么你做短视频就是干不过同行&#xff1f;因为你总想着拍剧情、段子这些娱乐视频&#xff0c;还想着当网红做IP人设&#xff0c;但是这些内容跟你的盈利没有半毛钱关系&#xff0c;况且难度大、见效慢&#xff0c;还不是精准客户。 以上这些就代表你走进了短视频的误区&…

C++初学者指南-2.输入和输出---流输入和输出

C初学者指南-2.输入和输出—流输入和输出 文章目录 C初学者指南-2.输入和输出---流输入和输出1.定制输入/输出1.1 示例&#xff1a;点坐标输入/输出1.2 流操作符1.3&#xff08;一部分&#xff09;标准库流类型 2. 工具2.1 用getline读取行 2.2 用ignore进行跳转2.3 格式化操作…

【论文阅读】-- Temporal Summary Images:通过交互式注释生成和放置实现叙事可视化的方法

Temporal Summary Images: An Approach to Narrative Visualization via Interactive Annotation Generation and Placement 摘要1 引言2 背景及相关工作2.1 叙事可视化和讲故事2.2 显示面向时间的数据2.3 小倍数和漫画2.4 注释可视化 3 设计要求和工作流程3.1 工作流程3.2 TSI…

基线核查--渗透

基线检查 基线核查概念 it中定义&#xff1a; 基线为初始的标准&#xff0c;以后更改就要经过授权&#xff0c;形成下一基线。 软件配置管理的基线&#xff1a;1功能基线&#xff0c;分配基线&#xff0c;产品基线 安全配置基线--基线核查 安全基线可以说是木桶理论&…

【python】eval函数

1.eval函数的语法及用法 &#xff08;1&#xff09;语法&#xff1a;eval(expression) 参数说明&#xff1a; expression&#xff1a;必须为字符串表达式&#xff0c;可为算法&#xff0c;也可为input函数等。 说明&#xff1a;表达式必需是字符串&#xff0c;否则会报错&a…

Vue3-尚硅谷笔记

1. Vue3简介 2020年9月18日&#xff0c;Vue.js发布版3.0版本&#xff0c;代号&#xff1a;One Piece&#xff08;n 经历了&#xff1a;4800次提交、40个RFC、600次PR、300贡献者 官方发版地址&#xff1a;Release v3.0.0 One Piece vuejs/core 截止2023年10月&#xff0c;最…

Dubbo运行原理

目录 Dubbo通讯协议 Dubbo负载均衡策略 RPC和HTTP有什么区别&#xff1f; 让你设计一个RPC框架&#xff0c;如何考虑数据序列化问题&#xff1f; Dubbo 是一款高性能、轻量级的开源 RPC&#xff08;远程过程调用&#xff09;框架&#xff0c;主要用于构建分布式服务和微服务…

springcloud第4季 springcloud-alibaba之openfegin+sentinel整合案例

一 介绍说明 1.1 说明 1.1.1 消费者8081 1.1.2 openfegin接口 1.1.3 提供者9091 9091微服务满足&#xff1a; 1 openfegin 配置fallback逻辑&#xff0c;作为统一fallback服务降级处理。 2.sentinel访问触发了自定义的限流配置&#xff0c;在注解sentinelResource里面配置…

基于SpringBoot的学生综合测评系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot框架 工具&#xff1a;MyEclipse、Tomcat 系统展示 首页 系统首页&#xff0c;提供综合…

After Effects 2024 mac/win版:创意视效,梦想起航

After Effects 2024是一款引领视效革命的专业软件&#xff0c;汇聚了创意与技术的精华。作为Adobe推出的全新版本&#xff0c;它以其强大的视频处理和动画创作能力&#xff0c;成为从事设计和视频特技的机构&#xff0c;如电视台、动画制作公司、个人后期制作工作室以及多媒体工…

求职产品运营的个人简历案例(精选篇)

在求职产品运营的道路上&#xff0c;一份出色的个人简历是迈向成功的第一步&#xff0c;但是简历怎么写才最好呢&#xff1f;下面是小编整理的求职产品运营的个人简历案例&#xff0c;同时&#xff0c;幻主简历网还提供精美简历模板下载和简历在线制作工具&#xff0c;欢迎大家…

meizu M10 魅蓝 10 mblu10 root 解锁 安装LSPosed框架 紫光展锐改串 AT命令 一键新机 改机软件 硬改 改参数

meizu M10 魅蓝 10 mblu10 root 解锁 安装LSPosed框架 紫光展锐改串 AT命令 一键新机 改机软件 硬改 改参数 ro.system.build.version.release11 ro.system.build.version.release_or_codename11 ro.system.build.version.sdk30 ro.system.custom.versionAndroid_M01 ro.prod…

python目录树生成器

代码如下&#xff1a; import os from colorama import Fore, Style, init from tkinter import Tk, Label, Entry, Button, Text, Scrollbar, RIGHT, Y, END# 初始化 colorama init(autoresetTrue)def print_directory_tree(root_dir, text_widget, indent, lastTrue):"…

NISP国家信息安全水平考试

国家信息安全水平考试(NISP)是中国信息安全测评中心考试、发证&#xff0c;由国家网络空间安全人才培养基地运营管理&#xff0c;并授权网安世纪科技有限公司为NISP证书管理中心。 中国信息安全测评中心开展国家信息安全水平考试(NISP)考试项目&#xff0c;是为普及信息安全/网…

Spring Boot如何实现跨域资源共享(CORS)?

&#x1f345; 作者简介&#xff1a;哪吒&#xff0c;CSDN2021博客之星亚军&#x1f3c6;、新星计划导师✌、博客专家&#x1f4aa; &#x1f345; 哪吒多年工作总结&#xff1a;Java学习路线总结&#xff0c;搬砖工逆袭Java架构师 &#x1f345; 技术交流&#xff1a;定期更新…

1.k8s:架构,组件,基础概念

目录 一、k8s了解 1.什么是k8s 2.为什么要k8s &#xff08;1&#xff09;部署方式演变 &#xff08;2&#xff09;k8s作用 &#xff08;3&#xff09;Mesos&#xff0c;Swarm&#xff0c;K8S三大平台对比 二、k8s架构、组件 1.k8s架构 2.k8s基础组件 3.k8s附加组件 …

【STM32-存储器映射】

STM32-存储器映射 ■ STM32F1-4G地址空间分成8个块■ STM32F1-Block0■ STM32F1-Block1■ STM32F1-Block2■ STM32F1- ■ STM32F1-4G地址空间分成8个块 ■ STM32F1-Block0 有出厂 BootLoader 就可以使用串口下载程序。如Keil5图中IROM地址是0x8000000 开始 就是flash地址 ■ S…

使用方法——注意事项及好处

public class MethodDemo01 {public static void main(String[] args) {// 目标&#xff1a;掌握定义方法的完整性&#xff0c;清楚使用方法的好处。// 需求&#xff1a;假如现在有很多程序员都要进行2个整数求和的操作。//1、李工。int rs sun(10,20);System.out.println(&q…