JavaScript |(一)JavaScript简介及基本语法 | 尚硅谷JavaScript基础实战

news2024/11/6 9:34:01

学习来源:尚硅谷JavaScript基础&实战丨JS入门到精通全套完整版

文章目录

  • 📚JavaScript简介
    • 🐇 实现
    • 🐇JavaScript的特点
  • 📚基本知识
    • 🐇编写位置
      • 🔥方式一:在标签中写(不推荐)
      • 🔥方式二:script标签中
      • 🔥方法三:外联js样式(推荐)
    • 🐇JS基本语法
    • 🐇变量与字面量
    • 🐇标识符
    • 🐇数据类型
      • 🔥String字符串
      • 🔥Number数值
      • 🔥Boolean布尔值
      • 🔥Null和undefined
    • 🐇强制类型转换
      • 🔥将其他数据类型转换为String
      • 🔥将其他数据类型转换为Number
      • 🔥将其他数据类型转换为布尔类型
      • 🔥其他进制的数字
  • 📚算术运算符
    • 🐇一元运算符
    • 🐇自增与自减运算符
    • 🐇逻辑运算符
      • 🔥布尔判断
      • 🔥非布尔判断
      • 🔥判断运算符
      • 🔥转义字符
      • 🔥相等运算符
      • 🔥三目运算符
      • 🔥运算符优先级
  • 📚代码块
  • 📚流程控制
    • 🐇if语句
    • 🐇switch语句
    • 🐇while循环
    • 🐇for循环
    • 🐇break和continue(配合label)

📚JavaScript简介

🐇 实现

  • ECMAScript是一个标准,而这个标准需要由各个厂商去实现。
    在这里插入图片描述

  • 我们已经知道ECMAScript是JavaScript标准,所以一般情况下这两个词我们认为是一个意思。但是实际上JavaScript的含义却要更大一些。

  • 一个完整的JavaScript实现应该由以下三个部分构成:
    在这里插入图片描述

🐇JavaScript的特点

  • 解释型语言

    • 不需要被编译为机器码再执行。
    • 开发起来轻松,但运行较慢。
    • 解释型语言中使用了JIT技术,使得运行速度得以改善。
  • 类似于 C 和 Java 的语法结构

  • 动态语言:可以暂时理解为在语言中一切内容都是不确定的。

  • 基于原型的面向对象

📚基本知识

🐇编写位置

  • JS代码需要编写到<script>标签中。
  • 我们一般将script标签写到head中。(和style标签有点像)
  • 属性:
    • type:默认值text/javascript可以不写,不写也是这个值。
    • src:当需要引入一个外部的js文件时,使用该属性指向文件的地址。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <!-- JS代码需要编写到script标签中 -->
    <script type="text/javascript">
        // 控制浏览器弹出一个警告框
        alert("这是我的第一行js代码");
        // 让计算机在页面中输出一个内容
        document.write("我是js写在body里的输出喔~~")
        // 向控制台输出一个内容
        console.log("我只会出现在控制台喔!");
    </script>
</head>
<body>
</body>
</html>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


🔥方式一:在标签中写(不推荐)

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <!-- 注意:虽然可以写在标签的属性中,但是它们属于结构与行为耦合,不方便维护,不推荐 -->
    <!-- 可以将js代码编写到标签的onclick属性中,当点击按钮时执行-->
    <button onclick="alert('么么哒(可霸总可不霸总版)')">点我一下</button>
    <!-- 可以将js代码写在超链接的href属性中 -->
    <a href="javascript:alert('许沁真是恋爱脑');">你也点我一下</a>
</body>
</html>

在这里插入图片描述
在这里插入图片描述

🔥方式二:script标签中

<script type="text/javascript">
        alert("方法二");
</script>

🔥方法三:外联js样式(推荐)

<script type="text/javascript" src="外部的js文件.js"></script>

  • script标签一旦用于引用外部文件,就不能再编写代码(即使编写了浏览器也会忽略)。如下,wuwuwu是不会出现的。

     <script src="a.js">alert("wuwuwu")</script>   
    
  • 如果你还需要,则可以再创建一个新的script标签用于编写内部代码。

    <script type="text/javascript" src="外部的js文件.js"></script>
    <script type="text/javascript">
    	alert("我是内部的js代码");
    </script>
    

🐇JS基本语法

  • 严格区分大小写!
  • 注释
    • 单行注释://注释内容
    • 多行注释:/*多行注释*/
  • ;号结尾
  • 会忽略多个空格和换行。

🐇变量与字面量

  • 字面量:不可变。可以直接使用,当我们一般不会直接用。

  • 变量:用var来声明一个变量。用变量去保存一个字面量。

    var num=123;//把字面量赋值给变量
    

🐇标识符

  • 在JS中所有的可以由我们自主命名的都可以称为标识符。
  • 例如:变量名、函数名、属性名。
  • 标识符命名规则
    • 标识符中可以含字母数字_$
    • 标识符不能以数字开头
    • 标识符不能是ES中的关键字或保留字
    • 标识符一般用驼峰命名
    • JS底层保存标识符实际上采用Unicode编码,所以 理论上讲,所有的 utf-8中含的内容都可以作为标识符

🐇数据类型

  • 基本数据类型
    • String:字符串
    • Number:数值
    • Boolean:布尔值
    • Null:空值
    • Undefined:未定义
  • 引用数据类型Object:对象

🔥String字符串

  • 在JS中字符串需要使用引号引起来
  • 使用双引号或单引号都可以,但是不要混着用
  • 引号不能嵌套,双引号不能放双引号,单引号不能放单引号
  • 在字符串中我们可以使用\作为转义字符,当表示一些特殊符号时可以使用\进行转义
    • \" 表示 "
    • \' 表示 ’
    • \n 表示换行
    • \t 制表符
    • \\ 表示\

🔥Number数值

  • 在JS中所有的数值都是Number类型,包括整数和浮点数(小数)
  • JS中可以表示的数字的最大值:Number.MAX_VALUE,1.7976931348623157e+308
  • Number.MIN_VALUE:大于0的最小值,5e-324
  • 如果使用Number表示的数字超过了最大值,则会返回:
    • Infinity 表示正无穷
    • -Infinity 表示负无穷
  • 使用typeof检查Infinity也会返回number
  • NaN 是一个特殊的数字,表示Not A Number,使用typeof检查一个NaN也会返回number。
  • 在JS中整数的运算基本可以保证精确,如果使用JS进行浮点运算,可能得到一个不精确的结果,所以千万不要使用JS进行对精确度要求比较高的运算

typeof:检查一个变量的类型

🔥Boolean布尔值

  • 布尔值只有两个,主要用来做逻辑判断
    • true:表示真
    • false:表示假
  • 使用typeof检查一个布尔值时,会返回boolean

🔥Null和undefined

Null(空值)类型的值只有一个,就是null

  • null这个值专门用来表示一个为空的对象
  • 使用typeof检查一个null值时,返回object
    undefined(未定义)类型的值只有一个,就undefind
  • 当声明一个变量,但是并不给变量赋值时,它的值就是undefined
  • 使用typeof检查一个undefined时也是undefined

🐇强制类型转换

🔥将其他数据类型转换为String

方式一

  • 调用被转换数据类型的toString()方法
  • 该方法不会影响到原变量,它会将转换的结果返回
  • 但是注意:null和undefined这两个值没有toString()方法,如果调用他们的方法,会报错

方式二

  • 调用String()函数,并将被转换的数据作为参数传递给函数
  • 使用String()函数做强制类型转换时,对于Number和Boolean实际上就是调用的toString()方法
  • 但是对于null和undefined,就不会调用toString()方法,它会将 null 直接转换为 “null”,将 undefined 直接转换为 “undefined”
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			var a = 123;
			a = a.toString();
			var b = null;
			b = String(a);
			var c = undefined;
			console.log(c);
			c = String(c);
			console.log(typeof a);
			console.log(typeof b);
			console.log(typeof c);
			console.log(c);
		</script>
	</head>
	<body>
	</body>
</html>

在这里插入图片描述

🔥将其他数据类型转换为Number

方式一:使用Number()函数

  • 字符串 --> 数字
    • 1.如果是纯数字的字符串,则直接将其转换为数字
    • 2.如果字符串中有非数字的内容,则转换为NaN
    • 3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
  • 布尔 --> 数字
    • true 转成 1
    • false 转成 0
  • null --> 数字 0
  • undefined --> 数字 NaN

方式二:这种方式专门用来对付字符串

  • parseInt() 把一个字符串转换为一个整数,可以将一个字符串中的有效的整数内容取出来
  • parseFloat() 把一个字符串转换为一个浮点数,和parseInt()类似,不同的是它可以获得有效的小数
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			var a = "123";
			console.log(a);
			a = Number(a);
			console.log(typeof a);
			var b = "123px";
			b = Number(b);
			console.log(b);
			var c = false;
			c = Number(c);
			console.log(c);
			var d = null;
			d = Number(d);
			console.log(d);
			var e = undefined;
			e = Number(e);
			console.log(e);
			
			a = "123567a567px";
			a = parseInt(a);
			console.log(a);
			
			a = "123.456.789px";
			a = parseFloat(a);
			console.log(a)
		</script>
	</head>
	<body>
	</body>
</html>

在这里插入图片描述

🔥将其他数据类型转换为布尔类型

使用Boolean()函数

  • 数字 --> 布尔:除了0和NaN,其余的都是true
  • 字符串 --> 布尔:除了空串,其余的都是true
  • null和undefined都会转换为false
  • 对象也会转换为true
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			var a = 123; //true
			a = -123; //true
			a = 0; //false
			a = Infinity; //true
			a = NaN; //false
			//调用Boolean()函数来将a转换为布尔值
			a = Boolean(a);

			// 空串为false
			a =""
			a = Boolean(a);
			console.log(a);
			// 空格不是空串
			a = " ";
			a = Boolean(a);
			console.log(a);
			a = null; 
			a = Boolean(a);
			console.log(a);
			a = undefined; 
			a = Boolean(a);
			console.log(a);
		</script>
	</head>
	<body>
	</body>
</html>

在这里插入图片描述

🔥其他进制的数字

  • 在js中,如果需要表示16进制的数字,则需要以0x开头
  • 如果需要表示8进制的数字,则需要以0开头
  • 如果要要表示2进制的数字,则需要以0b开头
  • 但是不是所有的浏览器都支持。如你想解析字符串为数字,"070",有些浏览器会当成8进制解析,有些则会当成10进制解析。
  • 为了避免以上情况,我们在使用parseInt()时,一般指定进制。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			var a = 123;
			//十六进制
			a = 0x10;
			a = 0xff;
			a = 0xCafe;
			
			//八进制数字
			a = 070;
			
			//二进制数字
			//a = 0b10;
			
			//向"070"这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析
			a = "070";
			
			//可以在parseInt()中传递一个第二个参数,来指定数字的进制
			a = parseInt(a,10);
			console.log(typeof a);
			console.log(a);
		</script>
	</head>
	<body>
	</body>
</html>

📚算术运算符

运算符也叫操作符

  • 通过运算符可以对一个或多个值进行运算,并获取运算结果
  • 比如:typeof就是运算符,可以来获得一个值的类型,它会将该值的类型以字符串的形式返回

算术运算符:当对非Number类型的值进行运算时,会将这些值转换为Number然后再运算任何值和NaN做运算都得NaN

  • +可以对两个值进行加法运算,并将结果返回。
    • 如果对两个字符串进行加法运算,则会做拼串,会将两个字符串拼接为一个字符串,并返回。
    • 任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作。
  • - 可以对两个值进行减法运算,并将结果返回。
  • * 可以对两个值进行乘法运算。
  • / 可以对两个值进行除法运算。
  • % 取模运算(取余数)

任何值和字符串相加都会转换为字符串,并做拼串操作,我们可以利用这一特点,来将一个任意的数据类型转换为String。

  • 我们只需要为任意的数据类型 + 一个 "" 即可将其转换为String。
  • 这是一种隐式的类型转换,由浏览器自动完成,实际上它也是调用String()函数。

任何值做- * /运算时都会自动转换为Number,我们可以利用这一特点做隐式的类型转换。

  • 可以通过为一个值 -0 *1 /1来将其转换为Number。
  • 原理和Number()函数一样,使用起来更加简单。

🐇一元运算符

一元运算符,只需要一个操作数

  • + 正号:正号不会对数字产生任何影响。
  • - 负号:负号可以对数字进行负号的取反。
  • 对于非Number类型的值,它会将先转换为Number,然后再运算。可以对一个其他的数据类型使用+,来将其转换为number,它的原理和Number()函数一样。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>一元运算符</title>
    <script>
        var a =true;
        a =-a;
        console.log(a)//-1
        var b ="123";
        b = +b;
        console.log(b);//123
        var c =1+ +"2"+3+ +"4";
        console.log(c)//10
    </script>
</head>
<body>
</body>
</html>

🐇自增与自减运算符

在这里插入图片描述

🐇逻辑运算符

(确切感受到语言之间的通用性——都一样哇
在这里插入图片描述

🔥布尔判断

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

🔥非布尔判断

&&|| 非布尔值的情况:对于非布尔值进行与或运算时,会对其转换为布尔值,然后再运算,并且返回原值

  • 与运算
    • 如果第一个值时true,则必然返回第二个值
    • 如果第一个值时false,则之间返回第一个值
  • 或运算
    • 如果第一个值是true,直接返回第一个值
    • 如果第一个值是false,则返回第二个值

//false  false
//第一个为false了,不用看第二个直接返回第一个
var result = NaN && 0;
console.log(result)
var c =0 && NaN;
console.log(c)
//TRUE     FALSE
//第一个是正确的,那么整段逻辑表达式取决于第二个值,所以它会直接返回第二个值
var a =true && false;
console.log(a);

🔥判断运算符

  • 非数值的情况
    • 对于非数值进行比较时,会将其转换为数字然后再比较
    • 如果符号两侧都是字符串是不会将其转换为数字进行比较,而是会分别比较字符串中字符的Unicode编码,一个字符一个符的比

🔥转义字符

  • 在HTML中转义,用&#编码;
  • 在JS中用\u\代表转义,u指明输出的字符集
<h1 style="font-size: 1000px " align="center">&#9760;</h1>

var a ="\u2620";//\为转义,u标明输出为unicode字符集
console.log(a);

🔥相等运算符

相等运算符用来比较两个值是否相等,如果相等会返回true,否则返回false

  • 使用==来做相等运算

    • 用==来比较两个值,如果值的类型不同,则会继续自动类型转换,将其转换为相同的类型,然后比较
  • 不相等 !=

    • 不相等用来判断两个值是否不相等,如果不相等返回true,否则返回false
    • 使用!=来做不相等运算
    • 不相等也会对变量进行自动类型转换,如果转换后相等,则返回false,不相等则返回true
  • 全等===

    • 用来判断两个值是否相等,它和相等类似,不同的是它不会做自动类型转换,如果两个值的类型不同直接返回false。
  • 不全等

    • 用来判断两个值是否不全等 ,和不等类似,不同的是它也不会自动转换类型。如果两个值的类型不同,直接返回true。

  1. NaN不和任何值相等,包括他本身。
  2. undefined衍生自null,所以这两个值做相等判断时,会返回true。
  3. 我们在做变量值是否为NaN时,不能用== 而是用isNaN()函数。
  4. 尽量不要用== 来做严格判断,类型不一样,值一样也会返回true。

🔥三目运算符

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

  • 条件运算符在执行时,首先对条件表达式进行求值,如果条件的表达式的求值结果是一个非布尔值,会将其 转换为布尔值然后再运算
    • 如果该值为true,则执行语句1,并返回执行结果
    • 如果该值为false,则执行语句2,并返回执行结果

🔥运算符优先级

运算符优先级
在这里插入图片描述

📚代码块

  • 我们的程序由一条条语句构成的,语句是按照自上而下的顺序一条条执行。
  • 在JS中可以使用{}进行分组,它们要么都执行,要么都不执行。一个{}中的语句,我们称为一个代码块,在代码块后,不需要写;了。
  • JS的代码块,只具有分组作用,没有其他用途。

📚流程控制

和C一样一样的👀

🐇if语句

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			var age = 50;
			/*if(age >= 60){
				alert("你已经退休了~~");
			}else{
				alert("你还没退休~~~");
			}*/
			age = 200;
			
			/*if(age > 100){
				alert("活着挺没意思的~~");
			}else if(age > 80){
				alert("你也老大不小的了~~");	
			}else if(age > 60){
				alert("你也退休了~~");
			}else if(age > 30){
				alert("你已经中年了~~");
			}else if(age > 17){
				alert("你已经成年了");
			}else{
				alert("你还是个小孩子~~");
			}*/
			age = 90;
			
			if(age > 17 && age <= 30){
				alert("你已经成年了");
			}else if(age > 30 && age <= 60){
				alert("你已经中年了");
			}else if(age > 60 && age <= 80){
				alert("你已经退休了");
			}else{
				alert("你岁数挺大的了~~");
			}
		</script>
	</head>
	<body>
	</body>
</html>

🐇switch语句

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			/*
			 * 条件分支语句也叫switch语句
			 * 	语法:
			 * 		switch(条件表达式){
			 * 			case 表达式:
			 * 				语句...
			 * 				break;
			 *  		case 表达式:
			 * 				语句...
			 * 				break;
			 * 			default:
			 * 				语句...
			 * 				break;
			 * 		}
			 * 
			 * 	执行流程:
			 * 		switch...case..语句
			 * 		在执行时会依次将case后的表达式的值和switch后的条件表达式的值进行全等比较,
			 * 			如果比较结果为true,则从当前case处开始执行代码。
			 * 				当前case后的所有的代码都会执行,我们可以在case的后边跟着一个break关键字,
			 * 				这样可以确保只会执行当前case后的语句,而不会执行其他的case
			 * 			如果比较结果为false,则继续向下比较
			 * 			如果所有的比较结果都为false,则只执行default后的语句
			 * 
			 * 	switch语句和if语句的功能实际上有重复的,使用switch可以实现if的功能,
			 * 		同样使用if也可以实现switch的功能,所以我们使用时,可以根据自己的习惯选择。
			 */
			num = "hello";
			switch(num){
				case 1:
					console.log("壹");
					//使用break可以来退出switch语句
					break;
				case 2:
					console.log("贰");
					break;
				case 3:
					console.log("叁");
					break;
				default:
					console.log("非法数字~~");
					break;
			}
			
		</script>
	</head>
	<body>
	</body>
</html>

🐇while循环

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			/*
			 * 循环语句:
			 * 	通过循环语句可以反复的执行一段代码多次
			 * 
			 * while循环
			 * 	- 语法:
			 * 		while(条件表达式){
			 * 			语句...
			 * 		}
			 * 
			 * 	- while语句在执行时,
			 * 		先对条件表达式进行求值判断,
			 * 			如果值为true,则执行循环体,
			 * 				循环体执行完毕以后,继续对表达式进行判断
			 * 				如果为true,则继续执行循环体,以此类推
			 * 			如果值为false,则终止循环
			 * 
			 * do...while循环
			 * 	- 语法:
			 * 		do{
			 * 			语句...
			 * 		}while(条件表达式)
			 * 
			 * 	- 执行流程:
			 * 		do...while语句在执行时,会先执行循环体,
			 * 			循环体执行完毕以后,在对while后的条件表达式进行判断,
			 * 			如果结果为true,则继续执行循环体,执行完毕继续判断以此类推
			 * 			如果结果为false,则终止循环
			 * 
			 * 		实际上这两个语句功能类似,不同的是while是先判断后执行,
			 * 			而do...while会先执行后判断,
			 * 		do...while可以保证循环体至少执行一次,
			 * 			而while不能
			 */
			var n = 1;
			//向这种将条件表达式写死为true的循环,叫做死循环
			//该循环不会停止,除非浏览器关闭,死循环在开发中慎用
			//可以使用break,来终止循环
			/*while(true){
				alert(n++);
			}*/
			
			//创建一个循环,往往需要三个步骤
			//1.创初始化一个变量
			var i = 1;
			//2.在循环中设置一个条件表达式
			while(i <= 10){
				//3.定义一个更新表达式,每次更新初始化变量
				document.write(i++ +"<br />")
			}
		</script>
	</head>
	<body>
	</body>
</html>

🐇for循环

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			/*
			 * for语句,也是一个循环语句,也称为for循环
			 * 	在for循环中,为我们提供了专门的位置用来放三个表达式:
			 * 		1.初始化表达式
			 * 		2.条件表达式
			 * 		3.更新表达式
			 * 
			 *  for循环的语法:
			 * 		for(①初始化表达式;②条件表达式;④更新表达式){
			 * 			③语句...
			 * 		}
			 * 
			 * 		for循环的执行流程:
			 * 			①执行初始化表达式,初始化变量(初始化表达式只会执行一次)
			 * 			②执行条件表达式,判断是否执行循环。
			 * 				如果为true,则执行循环③
			 * 				如果为false,终止循环
			 * 			④执行更新表达式,更新表达式执行完毕继续重复②
			 */
			
			for(var i = 0 ; i < 10 ; i++ ){
				alert(i);
			}
			
			/*
			 * for循环中的三个部分都可以省略,也可以写在外部
			 * 	如果在for循环中不写任何的表达式,只写两个;
			 * 	此时循环是一个死循环会一直执行下去,慎用
			 * 	for(;;){
					alert("hello");
				}
			 */	
		</script>
	</head>
	<body>
	</body>
</html>

🐇break和continue(配合label)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			/*
			 * break关键字可以用来退出switch或循环语句
			 * 	不能在if语句中使用break和continue
			 * 	break关键字,会立即终止离他最近的那个循环语句
			 */
			for(var i=0 ; i<5 ; i++){
				console.log(i);
				if(i == 2){
					break;
				}
			}
			for(var i=0 ; i<5 ; i++){
				console.log("@外层循环"+i)
				for(var j=0 ; j<5; j++){
					break;
					console.log("内层循环:"+j);
				}
			}
			/*
			 * 可以为循环语句创建一个label,来标识当前的循环
			 * label:循环语句
			 * 使用break语句时,可以在break后跟着一个label,
			 * 	这样break将会结束指定的循环,而不是最近的
			 */
			
			outer:
			for(var i=0 ; i<5 ; i++){
				console.log("@外层循环"+i)
				for(var j=0 ; j<5; j++){
					break outer;
					console.log("内层循环:"+j);
				}
			}
			/*
			 * continue关键字可以用来跳过当次循环
			 * 	同样continue也是默认只会对离他最近的循环循环起作用
			 */
			for(var i=0 ; i<5 ; i++){
				if(i==2){
					continue;
				}
				console.log(i);
			}
			
			outer:
			for(var i=0 ; i<5 ; i++){
				for(var j=0 ; j<5 ; j++){
					continue;
					console.log("-->"+j);
				}
				console.log("@--->"+i);
			}
		</script>
	</head>
	<body>
	</body>
</html>

在这里插入图片描述

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

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

相关文章

常见Vue Admin对比

作者&#xff1a;felix 个人博客 常见Vue Admin对比 Vue element admin - 老牌 admin 后台管理 求稳首选Antd Pro Vue - 背靠阿里&#xff0c;代码过硬&#xff0c;大型项目首选Vue vben admin - 宝藏后台管理 基于 Vue3 UI清新 功能扎实iView Admin - 老牌 admin 代码工程化 …

【【51单片机的AT24C02】】

51单片机的AT24C02 AT24C02 先介绍一下存储器的知识 这里的重点肯定是I2C总线 存储器 分为2种 一种是易失性存储器RAM 还有一种是非易失性存储器ROM RAM分为 SRAM 和 DRAM Mask ROM PROM EPROM E2PROM 这几个是一个家族的 从创建之后 不能修改 然后 只能写一次 再而发展成可擦…

数字孪生融合 GIS 系统将为交通领域带来哪些改变?

随着科技的不断发展&#xff0c;数字孪生和 GIS 技术正成为交通领域的新宠。数字孪生是指通过数学建模、数据采集和实时仿真等技术手段&#xff0c;将实体世界与数字世界相互关联&#xff0c;形成一个全新的虚拟系统。而 GIS&#xff08;地理信息系统&#xff09;则是将空间数据…

1_Apollo4BlueLite芯片简介

1. 概述 Apollo4BlueLite是美国芯片制造公司Ambiq推出的一款超低功耗蓝牙SoC芯片。下面是关于Apollo4BlueLite芯片的概况介绍&#xff1a; &#xff08;1&#xff09;高性能&#xff1a;Apollo4BlueLite芯片具有较高的处理能力和性能表现。它采用了Arm Cortex-M4F处理器&#…

MySQL基础(二)SQL语句

目录 前言 一、SQL语句类型 二、数据库操作 查看 创建 进入 删除 更改 三、数据表操作 &#xff08;一&#xff09;、数据类型 1.数值类型 2.时间\日期类型 3.字符串类型 4.二进制类型 &#xff08;二&#xff09;、查看 1.查看表内的数据 2.查看表格的属性 &…

为什么 Splashtop 比 Apple Remote Desktop 更好用

Mac 电脑每年销量高达2000万台&#xff0c;可见在个人和专业计算领域 Mac 都越来越受欢迎。同样&#xff0c;由于人们在访问计算机的时间和地点方面需要更多灵活性&#xff0c;远程桌面软件的使用量也不断增长。 这就是为什么 Mac 原生应用 Apple Remote Desktop 深受苹果产品…

stm32通过ESP8266接入原子云

1. ESP8266模块需要烧录原子云固件&#xff0c;此原子云固件和正常的ESP8266固件相比添加了ATATKCLDSTA 和 ATATKCLDCLS 这两条指令&#xff1a; 2. 原子云账号注册及设备建立 设备管理-新增设备-ESP8266 新建设备后新建分组&#xff0c;将设备加入到此分组中&#xff1a; 至此…

Android 之 Canvas API 详解 (Part 1)

本节引言&#xff1a; 前面我们花了13小节详细地讲解了Android中Paint类大部分常用的API&#xff0c;本节开始我们来讲解 Canvas(画板)的一些常用API&#xff0c;我们在 8.3.1 三个绘图工具类详解中已经列出了我们可供调用的一些方法&#xff0c;我们分下类&#xff1a; drawX…

Vue3文本域(Textarea)

APIs 参数说明类型默认值必传width文本域宽度string | number‘100%’falseallowClear可以点击清除图标删除内容booleanfalsefalseautoSize自适应内容高度boolean | {minRows?: number, maxRows?: number}falsefalsedisabled是否禁用booleanfalsefalsemaxlength最大长度numb…

从数据出发看2023年Q2越南TikTok市场

在东南亚捞金的洪流中&#xff0c;人口基数大、人均客单消费高的国家&#xff0c;会率先受到中国跨境商家的青睐。在这两方面&#xff0c;越南似乎都不占优势&#xff0c;以致它成为早期东南亚电商巨头Shopee、Lazada的 “遗珠”。但今天越南电商又是另外一番景象&#xff1a;S…

LLM - Chinese-Llama-2-7b 初体验

目录 一.引言 二.模型下载 三.快速测试 四.训练数据 五.总结 一.引言 自打 LLama-2 发布后就一直在等大佬们发布 LLama-2 的适配中文版&#xff0c;也是这几天蹲到了一版由 LinkSoul 发布的 Chinese-Llama-2-7b&#xff0c;其共发布了一个常规版本和一个 4-bit 的量化版本…

.360勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

引言&#xff1a; 近年来&#xff0c;随着互联网的普及和信息技术的快速发展&#xff0c;网络安全问题日益严峻。其中&#xff0c;勒索病毒成为网络安全领域的一大威胁。本文91数据恢复将重点介绍一种名为“.360勒索病毒”的恶意软件&#xff0c;并探讨被该病毒加密的数据文件…

MyBatis学习之SQL查询

文章目录 resultMap结果映射使用resultMap结果映射是否开启驼峰命名自动映射 返回总记录条数 resultMap结果映射 使用resultMap结果映射 专门定义一个结果映射&#xff0c;在这个结果映射当中指定数据库表的字段名和Java类的属性名的对应关系type属性&#xff1a;用来指定POJ…

Redis 基础知识和核心概念解析:理解 Redis 的键值操作和过期策略

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

MCU全球生态发展大会|AT32 MCU加速应用创新与产业智慧升级

7月21日&#xff0c;由AspenCore主办的2023全球MCU生态发展大会在深圳罗湖君悦酒店圆满举行。本次活动聚集国际和本土知名MCU厂商的技术和应用专家&#xff0c;为来自消费电子、家电、工业控制、通信网络、新能源汽车和物联网领域的OEM厂商和方案集成商代表带来MCU领域的最新技…

Linux工具——vim

安装vim yum -y install vim 如果安装失败&#xff0c;提示Could not resolve host:mirrorlist.centos.org: Unkown error的问题&#xff0c;需要替换yum源&#xff0c;可以参考这个文章 配置vim root的vim配置文件在 /etc/vimrc 普通用户的vim配置文件在用户对应家目录下&a…

eNSP:简单使用acl进阶版

实验要求&#xff1a; 步骤一&#xff1a;配置IP地址 步骤二&#xff1a;配置IP地址&#xff1a; PC1: <Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]sysname PC1 [PC1]int g 0/0/0 [PC1-GigabitEthernet0/0/0]ip add 192.168.1.1 24 Jul 25 …

通嵌入式岗位门槛不高,懂点C语言编程和单片机

搞个简单的电子产品&#xff0c;门槛很低&#xff0c;当然工资低。 门槛高的嵌入式岗位&#xff1a;例如大疆、华为、小米&#xff0c;英伟达、高通这类公司嵌入式岗位&#xff0c;还是有一定要求的。工资待遇也是和不联网不差的。我司的嵌入式开发人员&#xff0c;清北的硕士…

zookeeper-3.7.1集群

1.下载&解压安装包apache-zookeeper-3.7.1-bin.tar.gz 解压到/app/ &改名zookeeper-3.7.1 [rootnode1 app]# tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /app/ [rootnode1 app]# mv apache-zookeeper-3.7.1-bin zookeeper-3.7.1 ---- 删除docs [rootnode1…

excel中单行换成多行

今天碰以下情况&#xff1a; 这在excel表中是在一个单元格&#xff0c;现在需要对其进行转换&#xff0c;将一个单元格换成多行 步骤&#xff1a; 1.删除换行符&#xff0c;添加一个逗号 2.选择数据-分列-分隔字符-逗号-确定 3.复制上述数据&#xff0c;选择性粘贴-转置 完…