JavaScript(JavaEE初阶系列13)

news2025/1/20 16:34:20

目录

前言:

1.初识JavaScript

2.JavaScript的书写形式

2.1行内式

2.2内嵌式

2.3外部式

2.4注释

2.5输入输出

3.语法

3.1变量的使用

3.2基本数据类型

3.3运算符

3.4条件语句

3.5循环语句

3.6数组

3.7函数

3.8对象

3.8.1 对象的创建

4.案例演示

4.1猜数字游戏

4.2聚合搜索

4.3表白墙

结束语:


前言:

在上节博客中小编主要是与大家分享了有关于HTML相关的一些基础知识,还带着大家一起制作了简单的简历界面。那么接下来小编就带着大家一起来学习一种新的语言JavaScript,学习完这个之后大家在结合着上一节的知识大家就可以继续完善上次练习中的不足的地方了。话不多说我们一起来学起来吧!

1.初识JavaScript

JavaScript的简称是JS,是世界上最流行的编程语言之一,是一个脚本语言,通过解释器运行,主要是在客户端(浏览器)上运行,现在也可以基于node.js在服务器端运行。

JavaScript最初只是为了完成简单的表单验证(验证数据的合法性),结果后来就火了,当前JavaScript已经成为了一个通用的编程语言。

JavaScript的能做的事情:

  • 网页开发(更复杂的特效和用户交互)。
  • 网页游戏开发。
  • 服务器开发。
  • 桌面程序开发。
  • 手机APP开发。

JavaScript和HTML和CSS之间的关系:

  • HTML:网页的结构(骨)。
  • CSS:网页的表现(皮)。
  • JavaScript:网页的行为(魂)。

JavaScript运行过程:

  • 编写的代码是保存在文件中的,也就是存储在硬盘(外存上)。
  • 双击.html文件浏览器(应用程序)就会读取文件,把文件内容加载到内存中(数据流向:硬盘—>内存)。
  • 浏览器会解析用户编写的代码,把代码翻译成二进制的,能让计算机识别的指令(解释器的工作)。
  • 得到的二进制会被CPU加载并执行(数据流向:内存—>CPU)。

浏览器分成渲染器引擎+JS 引擎。

  • 渲染引擎:解析HTML+CSS,俗称内核。
  • JS引擎:也就是JS解释器,典型的就是Chrome中内置的V8。
  • JS引擎逐行读取JS代码内容,然后解析成二进制指令,再执行。

JavaScript的组成:

  • ECMAScript(简称ES):JavaScript语法。
  • DOM:页面文档对象模型,对页面中的元素进行操作。
  • BOM:浏览器对象模型,对浏览器窗口进行操作。

JavaScript第一个代码:

JavaScript可以内嵌到HTML的script标签中,如下所示:

    <script>

        alert("你好!")

    </script>

2.JavaScript的书写形式

2.1行内式

直接嵌到html元素内部。

<!-- 1.行内式写法 -->

    <input id="btn1" type="button" value="点我一下" οnclick="console.log('hello.JavaScript');">

代码展示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS Demo1</title>
</head>
<body>
    <input type="button" value="点我一下" onclick="console.log('hello.JavaScript');">
</body>
</html>

结果展示:

 

注意:

  • JS中字符串常量可以使用单引号表示,也可以使用双引号表示,HTML中推荐使用双引号,JS中推荐使用单引号。
  • 在上述代码中console.log()是表示在控制台中显示,所以要通过控制台来进行观察。而alert是直接在显示器上方显示出来的一个弹窗。

2.2内嵌式

内嵌式就是直接写到script标签中:

<!-- 2.内嵌式写法 -->

    <script>

        alert(document.getElementById("btn1").value);

    </script>

代码展示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS Demo1</title>
    <!-- 2.内嵌式写法 -->
    <script>
        alert(document.getElementById("btn1").value);
    </script>
</head>
<body>
    
</body>
</html>

结果展示:

注意:这里建议大家将script写在body之前。

2.3外部式

写到单独的.js文件中。

// 在js中写

alert("hello tools")

<!-- 3.外部写法 -->

    <script src="tools.js"></script>

代码展示:

js代码:

// 在js中写
alert("hello tools")

HTML代码:
 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS Demo1</title>
    <!-- 3.外部写法 -->
    <script src="tools.js"></script>
</head>
<body>
    
</body>
</html>

结果展示:
注意:这种情况下script标签中间不能写代码,必须空着。(即是写了代码也不会执行)

2.4注释

// 我是单行注释

/*

    我是多行注释

    我是多行注释

 */

注意:多行注释不能嵌套!!! 

2.5输入输出

输入:prompt

/*

输入:prompt

弹出一个对话框

*/

prompt("请输入您的姓名:")

弹出一个输入框:

输出:alert

/*

输出:alert

弹出一个警示对话框,输出结果

*/

alert("输入成功!")

弹出一个警示对话框,输出结果。

输出:console.log

/**

 * 输出:console.log

 * 在控制台打印一个日志(供程序员看)

 */

console.log("这是一条日志!")

在控制台打印一个日志(供程序员看)

注意:在VSCode中直接输入“log”再按tab键,就可以快速输入console.log。

这个是在开发者工具中才能看到结果,我们来简单看一下开发者工具的界面,在Chrome浏览器界面中按F12/Fn+F12即可打开开发者工具。

其中元素是用来查看html代码的,控制台可以显示JS的信息,源代码中可以调试js代码,网络中可以查看网络请求。 

3.语法

3.1变量的使用

创建变量:

// 变量的定义

var name = "张三";

var age = 20;

let name = '李四';

let age = 19;

  • 在JS中var是它的一个关键字,表示这是一个变量。
  • =在JS中表示赋值,相当于把数据放到内存盒子中,在=两侧建议有一个空格每个语句最后带有一个;结尾。
  • 在初始化字符串的时候可以 使用双引号也可以使用单引号。
  • 可以使用let来定义也可以使用var来定义,它两的区别是诞生的时机不同,var诞生的更早一点,而let比较晚。作用域的行为上也有所不同,var更适合全局变量的定义,而let更适合局部变量的定义。

3.2基本数据类型

首先我们先来理解一下动态类型:在JS中的变量类型是程序运行的过程中才确定的(运行到=语句才确定类型)。

// 动态类型的理解

var a = 10;

var b = "hello";

var c = 'world';

c = 30;

他们会随着程序的运行,变量的类型可能会发生改变。

当然在JS中也存在着向Java里面的那些基本数据类型。如下所示:

  • number:数字,不区分整数和小数。
  • boolean:true真,false假。
  • string:字符串类型。
  • undefined:只有唯一的值undefined,表示未定义的值。
  • null:只有唯一的值null,表示空值。

特殊的数字值:

  • Infinity:无穷大。
  • -Infinity:负无穷小。
  • NaN:表示当前的结果不是一个数字。

代码展示:

var max = Number.MAX_VALUE;
console.log(max);
console.log(-max);
console.log(max - 'hello');

结果展示:

转义字符:
有些字符不方便直接输入,于是要通过一些特殊方式来表示。

  • \n
  • \\
  • \'
  • \''
  • \t

求长度:

使用String的length属性即可。

代码展示:

// 求长度
var str = "hello";
console.log(str.length);

结果展示:

字符串拼接
使用+进行拼接。

代码展示:

//字符串拼接
var a = "hello ";
var b = "world";
console.log(a + b);

结果展示:

注意:数字也可以进行拼接。但是要看清楚拼接后的是字符串还是数字。

代码展示:

var a = 100;
var b = 200;
var c = "300";
console.log(a + b);
console.log(b + c);

结果展示:

 

boolean布尔类型

表示真和假,在计算机中往往需要搭配条件/循环来使用。

boolean在参与运算的时候会被当成0和1来看待。但是并不推荐大家这么写。

代码展示:

console.log(true + 10);
console.log(false + 10);

结果展示:

undefined未定义数据类型

  • 如果一个变量没有被初始化过,结果就是undefined类型。
  • 如果undefined和字符串进行相加,结果就会进行字符串拼接。
  • 如果undefined和数字进行相加,结果为NaN。

代码展示:

var a;
console.log(a);
console.log(a + 10);
console.log(a + "10");

结果展示:

null空值类型

null表示当前的变量是一个“空值”。

代码展示:

var b = null;
console.log(b);
console.log(b + 10);
console.log(b + "10");

结果展示:

注意:

  • null和undefined都表示取值非法的情况,但是侧重点不同。
  • null表示当前的值为空。(相当于是有一个空的盒子)。
  • undefined表示当前的变量未定义。(相当于连盒子都没有)。

3.3运算符

  • 算数运算符:+、-、*、/、%
  • 赋值运算符&复合赋值运算符:=、+=、-=、*=、/=、%=
  • 自增自减运算符:++、--
  • 比较运算符:<、>、<=、>=、==(比较相等,会进行隐式转换)、!=、===(比较相等,不会进行隐式转换)、!==
  • 逻辑运算符:&&、||、!
  • 位运算:&、|、~、^
  • 移位运算:<<、>>、>>>

这里除了小编用红色标注出来的,其他的都和Java中的使用方法一样所以这里小编就不给大家一一演示了,这里主要是演示一下===和==之间的区别:

代码展示:

var num1 = 10;
var num2 = "10";
console.log("==隐式类型比较结果:" + (num1 == num2));
console.log("===严格类型比较结果:" + (num1 === num2));

结果展示:

我可以看到使用==隐式类型做比较的时候是true,你可以理解为Java里面的equals,但是使用===比较的时候就是false。

3.4条件语句

if语句:

基本语法与我们之前学习Java的一致,这里小编就简单给大家演示一下吧。

代码展示:

//判断某年是否是闰年
var year = 2000;
if(year % 100 == 0) {
    //判定世纪闰年
    if(year % 400 == 0) {
        console.log("是闰年");
    } else{
        console.log("不是闰年");
    }
}else{
    //普通闰年
    if(year % 4 == 0) {
        console.log("是闰年");
    }else{
        console.log("不是闰年");
    }
}

结果展示:

三元表达式:

条件 ? 表达式1 : 表达式2;

代码演示:

console.log(2 > 1 ? "yes" : "no");


结果展示:

switch语句:

代码展示:

var day = prompt("请输入今天星期几: ");
        switch (parseInt( day)) {
            case 1:
                console.log("星期一");
                break;
            case 2:
                console.log("星期二");
                break;
            case 3:
                console.log("星期三");
                break;
            case 4:
                console.log("星期四");
                break;
            case 5:
                console.log("星期五");
                break;
            case 6:
                console.log("星期六");
                break;
            case 7:
                console.log("星期日");
                break;
            default:
                console.log("输入有误");
        }

结果展示:

注意一点是要将用户输入的结果转换成整数。

3.5循环语句

while循环:

代码展示:

//找到100-200中第一个3的倍数
var num = 100;
while (num <= 200) {
    if (num % 3 == 0) {
        console.log("找到了 3 的倍数, 为:" + num);
        break;
    }
    num++;
}


结果展示:


for循环:

代码展示:

var array = new Array();
array.push(1);
array.push("hello");
array.push("world");
// 第一种
for (let i = 0; i < array.length; i++) {
    const element = array[i];
    console.log(element);
}

// 第二种
for (const item of array) {
    console.log(item);
}

结果展示:

3.6数组

  • 使用new来创建。

var arr = new Array();

  • 使用字面常量的方式来创建(推荐)。

var array1 = [];

var array2 = [1,2,"hello", false];//数组中保存的内容称之为元素

注意:在JS中 的数组不要求元素是相同类型的。

  • 获取元素:

代码展示:

var array2 = [1,2,"hello", false];//数组中保存的内容称之为元素
console.log(array2[2]);

结果展示:

新增元素:

  • 通过修改length新增。
  • 通过下标新增。
  • 使用push进行追加元素。

代码展示:

//通过修改length新增
var arr = [9,8,7,4];
arr.length = 7;
console.log(arr);
console.log(arr[4], arr[5]);
console.log("=====================");
//通过下标新增
arr[9] = 10;
console.log(arr);
console.log("=====================");
//使用push来进行追加元素
var newArr = [];
for (let i = 0; i < arr.length; i++) {
    if(arr[i] % 2 != 0) {
        newArr.push(arr[i]);
    }
}
console.log(newArr);

结果展示:

删除元素:

使用splice方法删除。

代码展示:

var arr = [9,2,4,5,8];
arr.splice(2,1);//第一个参数表示从下标为2开始删除,第二个参数表示要删除的元素个数是1个
console.log(arr);

 结果展示:

 

3.7函数

语法格式:

//创建函数/函数声明/函数的定义
function 函数名(形参列表) {
    函数体
    return 返回值;
}

代码展示:

function hello() {
    console.log("hello");
}
hello();

结果展示:

注意:在JS中关于实参和形参之间的参数个数可以不匹配,但是实际开发中一般要求实参和形参个数要匹配,如果实参个数比形参个数多,则多出来的参数不参与函数运算,如果实参个数比形参个数少,此时多出来的形参值为undefined。

匿名函数定义方式:

代码展示:

var add = function() {
    var sum = 0;
    for (let i = 0; i < 10; i++) {
        sum += i; 
    }
    return sum;
}
console.log(add());

结果展示:

 

 此时形如上述的情况就是一个匿名函数的写法。

作用域:

某个标识符名字在代码中的有效范围。在ES6标准之前,作用域主要分成两个部分:

  • 全局作用域:在整个script标签中,或者单独的js文件中生效。
  • 局部作用域/函数作用域:在函数内部生效。

代码展示:

//全局变量
var num = 10;
console.log(num);
function test() {
    //局部变量
    var num = 20;
    console.log(num);
}
function test2() {
    //局部变量
    var num = 30;
    console.log(num);
}
test();
test2();
console.log(num);

结果展示:

3.8对象

在JS中,字符串,数值,数组,函数都是对象。

每个对象中包含若干个的属性和方法。

  • 属性:事物的特征。
  • 方法:事物的行为。

3.8.1 对象的创建

①使用{}创建对象。

代码展示:

var a = {};//此时创建了一个空对象
var student = {
    name: '张三',
    height: 130,
    weight: 170,
    sayHello: function() {
        console.log("hello");
    }
};

注意:

  • 使用{}创建对象
  • 属性和方法之间使用,分隔,最后一个属性后面的,可有可无。
  • 键和值之间使用 :分隔。
  • 方法的值是一个匿名函数。

使用对象的属性和方法:

代码展示:

console.log(student.name);
console.log(student["height"]);
student.sayHello();

结果展示:

②使用new Object创建对象。

代码展示:

var student = new Object();
student.name = "李四";
student.height = 180;
student['weight'] = 130;
student.sayHello = function() {
    console.log("hello");
}

console.log(student.name);
console.log(student['weight']);
student.sayHello();

结果展示:

③使用构造函数创建对象

前面的创建对象方式只能创建一个对象,而使用构造函数可很方便的创建多个对象。

代码展示:

function Cat(name, type, sound) {
    this.name = name;
    this.type = type;
    this.miao = function() {
        console.log(sound);
    }
}

var mimi = new Cat('咪咪','中华田园猫','喵');
var xaiohei = new Cat('小黑','波斯猫','喵喵');
var ciqiu = new Cat('刺球','金渐层','咕噜噜');
console.log(mimi);
mimi.miao();

结果展示:

4.案例演示

4.1猜数字游戏

代码展示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>猜数字小游戏</title>
    <script src="jquery.min.js"></script>
</head>
<body>
    <div>
        <h2>猜数字小游戏</h2>
        玩家输入一个1 - 10 的数字:<input type="text"  id="input_num"><p></p>
        <input type="button"  value="查看结果" onclick="selectResultJq()">
        <div id="result_div"></div>

        <!-- 原生js猜数字游戏 -->
        <script>
            function selectResultJq() {
                //产生随机数1 - 10
                var randomNum = 1 + Math.floor(Math.random() * 10);
                var userInputNum = document.getElementById("input_num").value;
                var msg;
                
                if(randomNum == userInputNum) {
                    msg = "<h4>恭喜:猜对了</h4>"
                }else{
                    msg = "<h4>抱歉:猜错了,正确的数字是:" + randomNum + "</h4>";
                }
                document.getElementById("result_div").innerHTML = msg;
            }
        </script>
    </div>
</body>
</html>


结果展示:

这个界面由于没有CSS的加持,所以显示出来比较丑一点,不够这里大家主要是掌握JavaScript里面的基础用法就可以了。

4.2聚合搜索

代码展示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>聚合搜索</title>
    <script src="jquery.min.js"></script>
</head>
<body>
    <div style="width: 100%; text-align: center;">
        <input type="button" value=" 必应 " onclick="upSearch('https://www.bing.com/')"> &nbsp;&nbsp;&nbsp;
        <input type="button" value=" 搜狗 " onclick="upSearch('https://www.sogou.com/')"> &nbsp;&nbsp;&nbsp;
        <input type="button" value=" 360 " onclick="upSearch('https://www.so.com/')"> &nbsp;&nbsp;&nbsp;
        <hr>
        <iframe src="https://www.bing.com/" id="ifr" style="width: 100%; height: 600px;"></iframe>
        <script>
            function upSearch(url) {
                jQuery("#ifr").attr("src", url);
            }
        </script>
    </div>
</body>
</html>


结果展示:

4.3表白墙

代码展示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Confession-wall(表白墙)</title>
    <script src="../jquery.min.js"></script>
</head>
<body>
    <div style="width: 100%; text-align: center;">
        <h2>表白墙</h2>
        谁:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input id="username"><p></p>
        对谁说:<input id="tousername"><p></p>
        说什么:<input id="msg"><p></p>
        <input type="button" value="提交" onclick="mysub()"><p></p>
        <div id="div_allmsg">

        </div>
    </div>
    <script>
        function mysub() {
            var iptUserName = jQuery("#username");
            var iptToUserName = jQuery("#tousername");
            var iptMsg = jQuery("#msg");
            //1.非空校验
            if(iptUserName.val().trim() == "") {
                alert("请先输入您的姓名!");
                iptUserName.focus();
                return;
            }
            if(iptToUserName.val().trim() == "") {
                alert("请先输入对方的名字!");
                iptToUserName.focus();
                return;
            }
            if(iptMsg.val().trim() == "") {
                alert("请先输入信息!");
                iptMsg.focus();
                return;
            }
            //2.将内容展示在表白墙
            jQuery("#div_allmsg").append(iptUserName.val() + "对" + iptToUserName.val() + "说:" + iptMsg.val() + "<p></p>");
            //3.清空输入框的内容
            iptUserName.val("");
            iptToUserName.val("");
            iptMsg.val("");
        }
    </script>
</body>
</html>

结果展示:

结束语:

这一小节中小编主要是与大家分享了有关于JavaScript的基础知识,也给大家演示了几个案例,大家有啥不会的可以在评论区留言给小编,希望这节对大家了解网络有一定帮助,想要学习的同学记得关注小编和小编一起学习吧!如果文章中有任何错误也欢迎各位大佬及时为小编指点迷津(在此小编先谢过各位大佬啦!)

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

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

相关文章

【MyBatis】查询数据库

目录 一、什么是MyBatis 二、MyBatis框架的搭建 1、搭建MyBatis框架 2、设置MyBaits项目的配置 三、使用MyBatis完成数据库的操作 1、MyBatis程序中sql语句的即时执行和预编译 1.1、即时执行&#xff08;${}&#xff09; 1.2、预编译&#xff08;#{}&#xff09; 1.3、即…

多态原理解析

一 多态应用 首先&#xff0c;什么是多态呢?很多概念起初我们都是不理解的&#xff0c;就像我们刚接触继承一样&#xff0c;当学完后发现其实也没那么难&#xff0c;也挺容易理解的。 多态详细点就是多种状态&#xff0c;例如游戏中的抽宝箱&#xff0c;每个人难道都是一样的…

6.文件实现

第四章 文件管理 6.文件实现 ​   连续分配方式&#xff1a;逻辑上相邻的块在物理上也必须相邻&#xff0c;也必须是占有一组连续的块并且依然需要保持这些块之间的相对顺序。 在连续分配方式下为了实现逻辑块号到物理块号之间的映射关系&#xff0c;在文件的目录表中必须记…

JAVA语言:什么是懒加载机制?

JVM没有规定什么时候加载,一般是什么时候使用这个class才会什么时候加载,但是JVM规定了什么时候必须初始化(初始化是第三步、装载、连接、初始化),只要加载之后,那么肯定是要进行初始化的,所以我们就可以通过查看这个类有没有进行初始化,从而判断这个类有没有被加载。 …

文件批量重命名怎么去括号?

文件批量重命名怎么去括号&#xff1f;平时我们一个一个修改文件名称的时候&#xff0c;是不会有括号的。但如果你使用传统的方法来进行文件批量重命名&#xff0c;那么最后得到的文件名是这样的“音频 (数字编号)”&#xff0c;这些文件的名称中会包含一个中文括号。这这个括号…

8.15起 webserver笔记

XShell 远程连接 XFTP 文件传输 VSC远程连接虚拟机&#xff0c;vim编辑器用起来不方便&#xff1a; 查看虚拟机IP地址&#xff1a; MY&#xff1a; 192.168.42.138 VSC每次都要密码&#xff0c;配置免密登录&#xff1a; 在本机命令行生成用户私钥&#xff1a;

JDBC连接数据库(mysql)

准备jar包 官网下载即可&#xff0c;这里提供两个我下载过的jar包&#xff0c;供使用 链接&#xff1a;https://pan.baidu.com/s/1snikBD1kEBaaJnVktLvMdQ?pwdrwwq 提取码&#xff1a;rwwq eclipse导 jar包: 导入成功会有如下所示&#xff1a; ---------------------------…

LeetCode ACM模式——二叉树篇(二)

刷题顺序及思路来源于代码随想录&#xff0c;网站地址&#xff1a;https://programmercarl.com 二叉树的定义及创建见&#xff1a; LeetCode ACM模式——二叉树篇&#xff08;一&#xff09;_要向着光的博客-CSDN博客 目录 102. 二叉树的层序遍历 利用队列 利用递归 10…

sql类型-用户定义表类型

一、创建用户定义表类型String_Table_Type CREATE TYPE String_Table_Type AS TABLE ( Id nvarchar(200) NOT NULL ) GO DECLARE test String_Table_Type INSERT INTO test VALUES(a),(b),(c) SELECT * FROM test 二、SqlSugar中使用

VBA manual

VBA MACRO 修复乱码打开VBAAlt F11File/Options/Customize Ribbon 修复乱码 Tools / Options Control Pannel / Region 打开VBA Alt F11 快速打开VBA File/Options/Customize Ribbon

融云:以对话为场景本质,AIGC 将如何改变游戏规则

8 月 17 日&#xff08;本周四&#xff09;&#xff0c;融云直播课从排查问题到预警风险&#xff0c;社交产品如何更好保障体验、留住用户&#xff1f;欢迎点击报名~ 生成式 AI 公司 MosaicML 以约 13 亿美元的价格被大数据巨头 Databricks 收购&#xff0c;这个发生于 6 月底的…

了解51单片机

目录 51单片机名字的由来 主要功能 1.控制处理 2.数据处理 3.通信 4.定时计数 51单片机的组成 1.中央处理器CPU 2.存储器RAM、只读存储器ROM 3.I/O口和中断系统 4.显示驱动电路、A/D转换器 5.定时器/计数器、脉宽调制电路、模拟多路转换器等电路 单片机的应用领域(…

“探索超前的Pinia:解密Vue.js最新热门状态管理库“

在Vue.js开发者的世界中&#xff0c;一个令人兴奋的新宠儿已经崭露头角&#xff0c;它就是Pinia。对于那些在状态管理方面追求卓越的人来说&#xff0c;Pinia是一片沃土&#xff0c;可以帮助你构建出令人叹为观止的应用程序。无论你是一名有经验的开发者&#xff0c;还是刚入门…

《开放加速规范AI服务器设计指南》发布,应对生成式AI爆发算力挑战

8月10日&#xff0c;在2023年开放计算社区中国峰会(OCP China Day 2023)上&#xff0c;《开放加速规范AI服务器设计指南》&#xff08;以下简称《指南》&#xff09;发布。《指南》面向生成式AI应用场景&#xff0c;进一步发展和完善了开放加速规范AI服务器的设计理论和设计方法…

小白到运维工程师自学之路 第七十五集 (Kubernetes 企业级高可用部署)2

8、添加master节点 在k8s-master2和k8s-master3节点创建文件夹 mkdir -p /etc/kubernetes/pki/etcd在k8s-master1节点执行 从k8s-master1复制密钥和相关文件到k8s-master2和k8s-master3 scp /etc/kubernetes/admin.conf root192.168.77.15:/etc/kubernetes scp /etc/kubernet…

TPAMI, 2023 | 用压缩隐逆向神经网络进行高精度稀疏雷达成像

CoIR: Compressive Implicit Radar | IEEE TPAMI, 2023 | 用压缩隐逆向神经网络进行高精度稀疏雷达成像 注1:本文系“无线感知论文速递”系列之一,致力于简洁清晰完整地介绍、解读无线感知领域最新的顶会/顶刊论文(包括但不限于Nature/Science及其子刊;MobiCom, Sigcom, MobiSy…

〔011〕Stable Diffusion 之 解决绘制多人或面部很小的人物时面部崩坏问题 篇

✨ 目录 &#x1f388; 脸部崩坏&#x1f388; 下载脸部修复插件&#x1f388; 启用脸部修复插件&#x1f388; 插件生成效果&#x1f388; 插件功能详解 &#x1f388; 脸部崩坏 相信很多人在画图时候&#xff0c;特别是画 有多个人物 图片或者 人物在图片中很小 的时候&…

【编织时空二:探究顺序表与链表的数据之旅】

本章重点 链表 链表的结合实现 顺序表和链表的区别和联系 1.链表 顺序表的问题及思考 顺序表的优点&#xff1a; 顺序表中的元素在内存中是连续存储的&#xff0c;因此可以通过索引直接访问任意位置的元素。顺序表尾插尾删操作实现简单。 问题&#xff1a; 中间/头部的插入…

我的创作纪念日+【MySQL】- 08 影响MySQL性能的配置参数

我的创作纪念日【MySQL】- 08 影响MySQL性能的配置参数 写在前面我的创作纪念日 mysql 优化服务器设置1.创建MySQL配置文件2.InnoDB缓冲池&#xff08;Buffer Pool&#xff09;3.线程缓存4.表缓存5.InnoDB I/O配置&#xff08;事务日志&#xff09;6.InnoDB并发配置7.优化排序&…

《电路》基础知识入门学习笔记

文章目录&#xff1a; 一&#xff1a;电路模型和电路规律 1.电路概述 2.电路模型 3.基本电路物理量&#xff1a;电流、电压、电功率和能量 4.电流和电压的参考方向 5.电路元件—电阻 6. 电路元件—电压源和电流源 7.受控电源 8.基尔霍夫&#xff08;后面都要用这个方法…