尚硅谷JS笔记-逻辑运算符、赋值运算符 、关系运算符、编码等基本语法相关总结及归纳

目录

一、上节知识点补充

二、学习验证

三、逻辑运算符01

四、逻辑运算符02

五、赋值运算符

 六、关系运算符

七、编码

八、相等运算符

九、条件运算符

十、运算符的优先级

十一、代码块

 十二、流程控制语句

 十二、if语句


一、上节知识点补充

对于Number调用toString()时可以在方法中传递一个整数作为参数

此时它将会把数字转换为指定的进制,如果不指定则默认转换为10进制

源代码解析:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script type="text/javascript">
			
			var a = 255;
			
			//对于Number调用toString()时可以在方法中传递一个整数作为参数
			//此时它将会把数字转换为指定的进制,如果不指定则默认转换为10进制
			a = a.toString(2);
			
			console.log(a);
			console.log(typeof a);
			
		</script>
	</head>
	<body>
		
	</body>
</html>

二、学习验证

            var n1=10;

            var n2=20;

           

            var n = n1++;          //n1 = 11  n1++ = 10

           

            console.log('n='+n);          // 10

            console.log('n1='+n1);          //11

           

            n = ++n1           //n1 = 12  ++n1 =12

            console.log('n='+n);           //12

            console.log('n1='+n1);           //12

           

            n = n2--;          // n2=19 n2--=20

            console.log('n='+n);          //20

            console.log('n2='+n2);          //19

           

            n = --n2;          //n2=18 --n2 = 18

            console.log('n='+n);          //18

            console.log('n2='+n2);          //18

 

三、逻辑运算符01

JS中为我们提供了三种逻辑运算符

! 非

               - !可以用来对一个值进行非运算

               - 所谓非运算就是值对一个布尔值进行取反操作,

                   true变false,false变true

               - 如果对一个值进行两次取反,它不会变化

               - 如果对非布尔值进行元素,则会将其转换为布尔值,然后再取反

                   所以我们可以利用该特点,来将一个其他的数据类型转换为布尔值

                   可以为一个任意数据类型取两次反,来将其转换为布尔值,

                   原理和Boolean()函数一样

 

&& 与

               - &&可以对符号两侧的值进行与运算并返回结果

               - 运算规则

                   - 两个值中只要有一个值为false就返回false,

                       只有两个值都为true时,才会返回true

                   - JS中的“与”属于短路的与,

                       如果第一个值为false,则不会看第二个值

|| 或

               - ||可以对符号两侧的值进行或运算并返回结果

               - 运算规则:

                   - 两个值中只要有一个true,就返回true

                       如果两个值都为false,才返回false

                   - JS中的“或”属于短路的或

                       如果第一个值为true,则不会检查第二个值

源代码解析:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
			 * JS中为我们提供了三种逻辑运算符
			 * ! 非
			 * 	- !可以用来对一个值进行非运算
			 * 	- 所谓非运算就是值对一个布尔值进行取反操作,
			 * 		true变false,false变true
			 * 	- 如果对一个值进行两次取反,它不会变化
			 * 	- 如果对非布尔值进行元素,则会将其转换为布尔值,然后再取反
			 * 		所以我们可以利用该特点,来将一个其他的数据类型转换为布尔值
			 * 		可以为一个任意数据类型取两次反,来将其转换为布尔值,
			 * 		原理和Boolean()函数一样
			 * 
			 * && 与
			 * 	- &&可以对符号两侧的值进行与运算并返回结果
			 * 	- 运算规则
			 * 		- 两个值中只要有一个值为false就返回false,
			 * 			只有两个值都为true时,才会返回true
			 * 		- JS中的“与”属于短路的与,
			 * 			如果第一个值为false,则不会看第二个值
			 * 
			 * || 或
			 * 	- ||可以对符号两侧的值进行或运算并返回结果
			 * 	- 运算规则:
			 * 		- 两个值中只要有一个true,就返回true
			 * 			如果两个值都为false,才返回false
			 *		- JS中的“或”属于短路的或
			 * 			如果第一个值为true,则不会检查第二个值
			 */
			
			//如果两个值都是true则返回true
			var result = true && true;
			
			//只要有一个false,就返回false
			result = true && false;
			result = false && true;
			result = false && false;
			
			//console.log("result = "+result);
			
			//第一个值为true,会检查第二个值
			//true && alert("看我出不出来!!");
			
			//第一个值为false,不会检查第二个值
			//false && alert("看我出不出来!!");
			
			//两个都是false,则返回false
			result = false || false;
			
			//只有有一个true,就返回true
			result = true || false;
			result = false || true ;
			result = true || true ;
			
			//console.log("result = "+result);
			
			//第一个值为false,则会检查第二个值
			//false || alert("123");
			
			//第一个值为true,则不再检查第二个值
			//true || alert("123");
			
			
			
			var a = false;
			
			//对a进行非运算
			a = !a;
			
			//console.log("a = "+a);
			
			var b = 10;
			b = !!b;
			
			//console.log("b = "+b);
			//console.log(typeof b);
			
		</script>
	</head>
	<body>
	</body>
</html>

四、逻辑运算符02

 && || 非布尔值的情况

               - 对于非布尔值进行与或运算时,

                   会先将其转换为布尔值,然后再运算,并且返回原值

               - 与运算:

                   - 如果第一个值为true,则必然返回第二个值

                   - 如果第一个值为false,则直接返回第一个值

             

               - 或运算

                   - 如果第一个值为true,则直接返回第一个值

                   - 如果第一个值为false,则返回第二个值

源代码解析:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		
		<script type="text/javascript">
			
			/*
			 * && || 非布尔值的情况
			 * 	- 对于非布尔值进行与或运算时,
			 * 		会先将其转换为布尔值,然后再运算,并且返回原值
			 * 	- 与运算:
			 * 		- 如果第一个值为true,则必然返回第二个值
			 * 		- 如果第一个值为false,则直接返回第一个值
			 * 
			 * 	- 或运算
			 * 		- 如果第一个值为true,则直接返回第一个值
			 * 		- 如果第一个值为false,则返回第二个值
			 * 
			 */
			
			//true && true
			//与运算:如果两个值都为true,则返回后边的
			var result = 5 && 6;
			
			
			//与运算:如果两个值中有false,则返回靠前的false
			//false && true
			result = 0 && 2;
			result = 2 && 0;
			//false && false
			result = NaN && 0;
			result = 0 && NaN;
			
			
			//true || true
			//如果第一个值为true,则直接返回第一个值
			result = 2 || 1;
			result = 2 || NaN;
			result = 2 || 0;
			
			//如果第一个值为false,则直接返回第二个值
			result = NaN || 1;
			result = NaN || 0;
			
			result = "" || "hello";
			
			result = -1 || "你好";
			
			
			console.log("result = "+result);
			
		</script>
		
	</head>
	<body>
	</body>
</html>

五、赋值运算符

               =

               可以将符号右侧的值赋值给符号左侧的变量

              +=

               a += 5 等价于 a = a + 5

              -=

               a -= 5 等价于 a = a - 5

              *=

               a *= 5 等价于 a = a * 5

              /=

               a /= 5 等价于 a = a / 5

              %=

               a %= 5 等价于 a = a % 5

 源代码解析:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			/*
			 * =
			 * 	可以将符号右侧的值赋值给符号左侧的变量
			 * += 
			 * 	a += 5 等价于 a = a + 5
			 * -=
			 * 	a -= 5 等价于 a = a - 5
			 * *=
			 * 	a *= 5 等价于 a = a * 5
			 * /=
			 * 	a /= 5 等价于 a = a / 5
			 * %=
			 * 	a %= 5 等价于 a = a % 5
			 * 	
			 */
			var a = 10;
			
			//a = a + 5;
			//a += 5;
			
			//a -= 5;
			
			//a *= 5;
			
			// a = a%3;
			a %= 3;
			
			console.log("a = "+a);
			
		</script>
	</head>
	<body>
	</body>
</html>

 六、关系运算符

通过关系运算符可以比较两个值之间的大小关系,

如果关系成立它会返回true,如果关系不成立则返回false

             > 大于号

               - 判断符号左侧的值是否大于右侧的值

               - 如果关系成立,返回true,如果关系不成立则返回false

          

              >= 大于等于

               - 判断符号左侧的值是否大于或等于右侧的值

         

              < 小于号

              <= 小于等于

             

              非数值的情况

               - 对于非数值进行比较时,会将其转换为数字然后在比较

               - 如果符号两侧的值都是字符串时,不会将其转换为数字进行比较

                   而会分别比较字符串中字符的Unicode编码

 注:

1.比较两个字符串时,比较的是字符串的字符编码

console.log("a" < "b");//true

2.比较字符编码时是一位一位进行比较

 如果两位一样,则比较下一位,所以借用它来对英文进行排序

console.log("abc" < "bcd");//true

3. 比较中文时没有意义

console.log("戒" > "我"); //true

4. 如果比较的两个字符串型的数字,可能会得到不可预期的结果

    (注意:在比较两个字符串型的数字时,一定一定一定要转型)

console.log("11123123123123123123" < +"5"); //true

七、编码

1.0在字符串中使用转义字符输入Unicode编码

       \u四位编码

console.log("\u2620");

2.0在网页中使用Unicode编码

         &#编码; 这里的编码需要的是10进制

<h1 style="font-size: 200px;">&#9760;</h1>
<h1 style="font-size: 200px;">&#9856;</h1>

源代码解析:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
			 * 在字符串中使用转义字符输入Unicode编码
			 * 	\u四位编码
			 */
			console.log("\u2620");
			
		</script>
	</head>
	<body>
		
		<!--在网页中使用Unicode编码
			&#编码; 这里的编码需要的是10进制
		-->
		<h1 style="font-size: 200px;">&#9760;</h1>
		<h1 style="font-size: 200px;">&#9856;</h1>
		
	</body>
</html>

八、相等运算符

相等运算符用来比较两个值是否相等,

 如果相等会返回true,否则返回false

   使用 == 来做相等运算

               - 当使用==来比较两个值时,如果值的类型不同,

                   则会自动进行类型转换,将其转换为相同的类型

                   然后在比较

              不相等

                不相等用来判断两个值是否不相等,如果不相等返回true,否则返回false

               - 使用 != 来做不相等运算

               - 不相等也会对变量进行自动的类型转换,如果转换后相等它也会返回false

 

               ===

                   全等

                   - 用来判断两个值是否全等,它和相等类似,不同的是它不会做自动的类型转换

                       如果两个值的类型不同,直接返回false

               !==

                   不全等

                   - 用来判断两个值是否不全等,和不等类似,不同的是它不会做自动的类型转换

                       如果两个值的类型不同,直接返回true

1.0 undefined 衍生自 null

所以这两个值做相等判断时,会返回true

console.log(undefined == null);true

 2.0 NaN不和任何值相等,包括他本身

console.log(NaN == NaN); //false

 3.0 判断b的值是否是NaN

var b = NaN;
console.log(b == NaN);

4.0 可以通过isNaN()函数来判断一个值是否是NaN

  如果该值是NaN则返回true,否则返回false

var b = NaN;
console.log(isNaN(b));

源代码解析: 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
			 * 相等运算符用来比较两个值是否相等,
			 * 	如果相等会返回true,否则返回false
			 * 
			 * 使用 == 来做相等运算
			 * 	- 当使用==来比较两个值时,如果值的类型不同,
			 * 		则会自动进行类型转换,将其转换为相同的类型
			 * 		然后在比较
			 * 不相等
			 * 	 不相等用来判断两个值是否不相等,如果不相等返回true,否则返回false
			 * 	- 使用 != 来做不相等运算
			 * 	- 不相等也会对变量进行自动的类型转换,如果转换后相等它也会返回false
			 * 
			 * 		
			 *  ===
			 * 		全等
			 * 		- 用来判断两个值是否全等,它和相等类似,不同的是它不会做自动的类型转换
			 * 			如果两个值的类型不同,直接返回false
			 * 	!==
			 * 		不全等
			 * 		- 用来判断两个值是否不全等,和不等类似,不同的是它不会做自动的类型转换
			 * 			如果两个值的类型不同,直接返回true
			 */
			
			//console.log(1 == 1); //true
			
			var a = 10;
			
			//console.log(a == 4); //false
			
			//console.log("1" == 1); //true
			
			//console.log(true == "1"); //true
			
			//console.log(null == 0); //false
			
			/*
			 * undefined 衍生自 null
			 * 	所以这两个值做相等判断时,会返回true
			 */
			//console.log(undefined == null);
			
			/*
			 * NaN不和任何值相等,包括他本身
			 */
			//console.log(NaN == NaN); //false
			
			var b = NaN;
			
			//判断b的值是否是NaN
			//console.log(b == NaN);
			/*
			 * 可以通过isNaN()函数来判断一个值是否是NaN
			 * 	如果该值是NaN则返回true,否则返回false
			 */
			//console.log(isNaN(b));
			
			//console.log(10 != 5); //true
			//console.log(10 != 10); //false
			//console.log("abcd" != "abcd"); //false
			//console.log("1" != 1);//false
			
			//console.log("123" === 123);//false
			//console.log(null === undefined);//false
			
			console.log(1 !== "1"); //true
			
			
		</script>
	</head>
	<body>
	</body>
</html>

九、条件运算符

条件运算符也叫三元运算符

 语法:

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

               - 执行的流程:

                   条件运算符在执行时,首先对条件表达式进行求值,

                       如果该值为true,则执行语句1,并返回执行结果

                       如果该值为false,则执行语句2,并返回执行结果

                   如果条件的表达式的求值结果是一个非布尔值,

                       会将其转换为布尔值然后在运算

false?alert("语句1"):alert("语句2");

 源代码解析:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			/*
			 * 条件运算符也叫三元运算符
			 * 	语法:
			 * 		条件表达式?语句1:语句2;
			 * 	- 执行的流程:
			 * 		条件运算符在执行时,首先对条件表达式进行求值,
			 * 			如果该值为true,则执行语句1,并返回执行结果
			 * 			如果该值为false,则执行语句2,并返回执行结果
			 * 		如果条件的表达式的求值结果是一个非布尔值,
			 * 			会将其转换为布尔值然后在运算
			 */
			
			//false?alert("语句1"):alert("语句2");
			
			var a = 300;
			var b = 143;
			var c = 50;
			
			//a > b ? alert("a大"):alert("b大");
			
			//获取a和b中的最大值
			//var max = a > b ? a : b;
			//获取a b c 中的大值
			//max = max > c ? max : c;
			
			//这种写法不推荐使用,不方便阅读
			var max = a > b ? (a > c ? a :c) : (b > c ? b : c);
			
			//console.log("max = "+max);
			
			//"hello"?alert("语句1"):alert("语句2");
			
			
		</script>
	</head>
	<body>
	</body>
</html>

十、运算符的优先级

    运算符

使用 , 可以分割多个语句,一般可以在声明多个变量时使用 ,

使用 运算符同时声明多个变量

var a , b , c;

 可以同时声明多个变量并赋值

var a=1 , b=2 , c=3;
 alert(b);

就和数学中一样,在JS中运算符也有优先级,

             *  比如:先乘除 后加减

             * 在JS中有一个运算符优先级的表,

             *  在表中越靠上优先级越高,优先级越高越优先计算,

             *  如果优先级一样,则从左往右计算。

             * 但是这个表我们并不需要记忆,如果遇到优先级不清楚

             *  可以使用()来改变优先级

var result = 1 + 2 * 3;

 如果||的优先级高,或者两个一样高,则应该返回3

     如果与的优先级高,则应该返回1

var result = 1 || 2 && 3;
console.log("result = "+result);

 源代码解析:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
			 * , 运算符
			 * 	使用,可以分割多个语句,一般可以在声明多个变量时使用,
			 */
			//使用,运算符同时声明多个变量
			//var a , b , c;
			
			//可以同时声明多个变量并赋值
			//var a=1 , b=2 , c=3;
			//alert(b);
			
			/*
			 * 就和数学中一样,在JS中运算符也有优先级,
			 * 	比如:先乘除 后加减
			 * 在JS中有一个运算符优先级的表,
			 * 	在表中越靠上优先级越高,优先级越高越优先计算,
			 * 	如果优先级一样,则从左往右计算。
			 * 但是这个表我们并不需要记忆,如果遇到优先级不清楚
			 * 	可以使用()来改变优先级
			 */
			
			//var result = 1 + 2 * 3;
			
			/*
			 * 如果||的优先级高,或者两个一样高,则应该返回3
			 * 如果与的优先级高,则应该返回1
			 * 		
			 */
			var result = 1 || 2 && 3;
			
			console.log("result = "+result);	
			
		</script>
	</head>
	<body>
	</body>
</html>

十一、代码块

我们的程序是由一条一条语句构成的

             *  语句是按照自上向下的顺序一条一条执行的

             *  在JS中可以使用{}来为语句进行分组,

             *      同一个{}中的语句我们称为是一组语句,

             *      它们要么都执行,要么都不执行,

             *      一个{}中的语句我们也称为叫一个代码块

             *      在代码块的后边就不用再编写;了

             

             *  JS中的代码块,只具有分组的的作用,没有其他的用途

             *      代码块内容的内容,在外部是完全可见的

源代码解析:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
			 * 我们的程序是由一条一条语句构成的
			 * 	语句是按照自上向下的顺序一条一条执行的
			 * 	在JS中可以使用{}来为语句进行分组,
			 * 		同一个{}中的语句我们称为是一组语句,
			 * 		它们要么都执行,要么都不执行,
			 * 		一个{}中的语句我们也称为叫一个代码块
			 * 		在代码块的后边就不用再编写;了
			 * 
			 * 	JS中的代码块,只具有分组的的作用,没有其他的用途
			 * 		代码块内容的内容,在外部是完全可见的
			 */
			{
				var a = 10;	
				alert("hello");
				console.log("你好");
				document.write("语句");
			}
			
			
			console.log("a = "+a);
		
			
			
			
		</script>
	</head>
	<body>
	</body>
</html>

 十二、流程控制语句

流程控制语句

               - JS中的程序是从上到下一行一行执行的

               - 通过流程控制语句可以控制程序执行流程,

                   使程序可以根据一定的条件来选择执行

               - 语句的分类:

                   1.条件判断语句

                   2.条件分支语句

                   3.循环语句

 条件判断语句:

               - 使用条件判断语句可以在执行某个语句之前进行判断,

                   如果条件成立才会执行语句,条件不成立则语句不执行。

 if语句

语法一:

             *      if(条件表达式){

             *          语句...

             *      }

             *          

             *      if语句在执行时,会先对条件表达式进行求值判断,

             *      如果条件表达式的值为true,则执行if后的语句,

             *      如果条件表达式的值为false,则不会执行if后的语句。

             *          if语句只能控制紧随其后的那个语句,

             *              如果希望if语句可以控制多条语句,

             *              可以将这些语句统一放到代码块中

             *          if语句后的代码块不是必须的,但是在开发中尽量写上代码块,即使if后只有一条语句     

源代码解析:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
			 * 流程控制语句
			 * 	- JS中的程序是从上到下一行一行执行的
			 * 	- 通过流程控制语句可以控制程序执行流程,
			 * 		使程序可以根据一定的条件来选择执行
			 *  - 语句的分类:
			 * 		1.条件判断语句
			 * 		2.条件分支语句
			 * 		3.循环语句
			 * 
			 * 
			 * 条件判断语句:
			 * 	- 使用条件判断语句可以在执行某个语句之前进行判断,
			 * 		如果条件成立才会执行语句,条件不成立则语句不执行。
			 *  - if语句
			 * 	- 语法一:
			 * 		if(条件表达式){
			 * 			语句...
			 * 		}
			 * 			
			 * 		if语句在执行时,会先对条件表达式进行求值判断,
			 * 		如果条件表达式的值为true,则执行if后的语句,
			 * 		如果条件表达式的值为false,则不会执行if后的语句。
			 * 			if语句只能控制紧随其后的那个语句,
			 * 				如果希望if语句可以控制多条语句,
			 * 				可以将这些语句统一放到代码块中
			 * 			if语句后的代码块不是必须的,但是在开发中尽量写上代码块,即使if后只有一条语句
			 * 			
			 */
			
			var a = 25;
			
			if(a > 10 && a <= 20){
				alert("a大于10,并且 a小于等于20");
			}	
			
			
		</script>
	</head>
	<body>
	</body>
</html>

 十二、if语句

语法二:

             *      if(条件表达式){

             *          语句...

             *      }else{

             *          语句...

             *      }

             *

             *  if...else...语句

             *      当该语句执行时,会先对if后的条件表达式进行求值判断,

             *          如果该值为true,则执行if后的语句

             *          如果该值为false,则执行else后的语句

 语法三:

             *      if(条件表达式){

             *          语句...

             *      }else if(条件表达式){

             *          语句...

             *      }else if(条件表达式){

             *          语句...

             *      }else{

             *          语句...

             *      }

            if...else if...else

             *          当该语句执行时,会从上到下依次对条件表达式进行求值判断

             *          如果值为true,则执行当前语句。

             *          如果值为false,则继续向下判断。

             *          如果所有的条件都不满足,则执行最后一个else后的语句

             *          该语句中,只会有一个代码块被执行,一旦代码块执行了,则直接结束语句

源代码解析:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			/*
			 * if语句
			 * 	语法二:
			 * 		if(条件表达式){
			 * 			语句...
			 * 		}else{
			 * 			语句...
			 * 		}
			 * 
			 * 	if...else...语句
			 * 		当该语句执行时,会先对if后的条件表达式进行求值判断,
			 * 			如果该值为true,则执行if后的语句
			 * 			如果该值为false,则执行else后的语句
			 * 
			 * 	语法三:
			 * 		if(条件表达式){
			 * 			语句...
			 * 		}else if(条件表达式){
			 * 			语句...
			 * 		}else if(条件表达式){
			 * 			语句...
			 * 		}else{
			 * 			语句...
			 * 		}
			 * 
			 * 		if...else if...else
			 * 			当该语句执行时,会从上到下依次对条件表达式进行求值判断
			 * 			如果值为true,则执行当前语句。
			 * 			如果值为false,则继续向下判断。
			 * 			如果所有的条件都不满足,则执行最后一个else后的语句
			 * 			该语句中,只会有一个代码块被执行,一旦代码块执行了,则直接结束语句
			 */
			
			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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值