ES6(一部分)未完...

news2024/11/18 21:50:27

文章目录

  • ES6
      • 1.ES6 let声明变量
      • 2.ES6 const声明常量
      • 3.变量解构赋值
        • 3-1解构对象
        • 3-2解构数组
        • 3-3字符串解构
      • 4.模板字符串
      • 5.字符串扩展
        • 5-1 include函数
        • 5-2 repeat函数(重复)
      • 6.数值扩展
        • 6-1二进制和八进制表示法
        • 6-2isFinite 与 isNaN方法
        • 6-3islnteger方法
        • 6-4极小常量Number.EPSILON
        • 6-5Math.trunc
        • 6-6Math.sign
      • 7.数组扩展
        • 7-1扩展运算符
        • 7-2Array.from
        • 7-3Array.of
        • 7-4find findIndex() 方法
        • 7-5 fill方法(填充)
        • 7-6 flat() flatMap()
      • 8.对象扩展
        • 8-1 对象简写
        • 8-2对象属性 表达式
        • 8-3 扩展运算符 ES2018
        • 8-4 Object.assign(快速合并数组)
        • 8-5 Object.is
      • 9.函数扩展
        • 9-1.函数参数的默认值
        • 9-2.rest参数 剩余参数
        • 9-3. name属性
        • 9-4. 箭头函数*
      • 10.Symbol

ES6

1.ES6 let声明变量

1.块级作用域(只能在大括号内使用)
之前的var,可以在外部访问,容易污染到全局

  • let的经典案例:有一个ul,里面有三个li,功能是,遍历这个列表,然后分别给每个li绑定事件,绑完之后,点哪个,就弹出来哪个的索引值这样一个功能
<ul>
		<li>11111</li>
		<li>22222</li>
		<li>33333</li>
<ul>
<script>
	//①用var写:👇
	var oli = document.querySelectorAll("ul li")
	for(var i=0;i<oli.length;i++){
		oli[i]onlick=function(){
			console.log(i)
		}
	}

	//②用let写:👇
	var oli = document.querySelectorAll("ul li")
	for(let i=0;i<oli.length;i++){
		oli[i]onlick=function(){
			console.log(i)
		}
	}

</script>

2.不允许重复声明

3.变量提升没有了

<script>
	 let name = "zxy"
	 function test(){
	 	//conosle.log(myname)
	 	let name = "tiechui"
	 }
	 test()
</script>

4.不与顶层对象挂钩

<script>
	let myage = 100
	console.log(myage)
</script>

2.ES6 const声明常量

<script>
	//1.常量
	const myname = "zxy"//常量一开始必须要进行初始化
	myname = "tiechui"
		//执行错误,不能赋值给常量

	//2.不能重复定义
	const myname = "tiechui"//上面定义过了,所以这里执行会出错

	//3.块级
	{
		const myname = "zxy"
	}
	console.log(myname)

	//4.声明不提升
	const name = "zxy"
	 function test(){
	 	//conosle.log(myname)
	 	const name = "tiechui"
	 }
	 test()
		

	//5.不与顶层对象挂钩
	const myage = 100
	console.log(window.myage)
	//undefined
</script>
  • const经典例子
<script>
	const myobj = {//myobj是指向下面这些复杂数据类型的地址
		name:"zxy",
		age:100
	}
	myobj.name = "tiechui"
	console.log(myobj)//地址里面的数据是可以改的,不影响const


	/*如果就是不让修改,那可以使用freeze,然后用“()”括起来(冻住了)
	[但是只能冻住一级属性,如果里面还有复杂数据类型的话,是冻不住的]*/
	const myobj = Object.freeze({
		name:"zxy",
		age:100
	})
	myobj.name = "tiechui"
	console.log(myobj)
</script>

3.变量解构赋值

  • 解构赋值,就是快速的从对象或者数组中取出成员的一个语法方式
3-1解构对象
  • 快速的从对象中获取成员
<script>
// ES6 的方法向得到对象中的成员
	const obj = {
		name:"zxy",
		age:100,
		gender:'女'
	}

	let name = obj.name
	let age = obj.age
	let gender = obj.gender

//解构赋值的放大从对象中获取成员
	const obj = {
		name:"zxy",
		age:100,
		gender:'女'
	}

</script>

对象解构赋值👇

<script>
	let obj = {
		name:"zxy",
		age:100
	}
	let {name,age} = obj//name和age可以交换顺序(数组解构不可以)
	console.log(name,age)

	let code = "AAAA"
	let res = {
		code:200,
		//①  date:"1111"
	//②如果date的内容变复杂,是一个列表👇
		date:{
			list:["aaa","bbb","ccc"]
		}
	}
	//①
	let {date,code:co,err="2222"} = res/*内层函
	数,和外部变量有重名,可以用xxx:xx(不重名的话会报错)*/
	console.log(date,co,err)
	//②
	let {date{list:[x,y,z]},code:co,err=:"3333"} = res
	console.log(x,co,err)
</script>

传参
在这里插入图片描述

3-2解构数组

在这里插入图片描述
数组解构赋值👇

<script>
//最简单的数组解构赋值:
	let arr = [1,2,3]
	//console.log(arr[1])
	
	let [a,b,c] = arr
	//运行之后,输入a拿到1,b拿到2,c拿到3

//如何快速交换两个数的值,不借助第三个变量	
	let x=1;
	let y=2;
	[y,x]=[x,y]//x,y的值交换了

	let arr = [1,2,3]
	//console.log(arr[1])

	let [,,a] = arr
	//console.log(a)
	//执行之后拿到的是3

//如果一个数组里又嵌套了一个数组,那该怎么拿呢
	let arr = [1,[2,3,4],5,6]
	let [a,[b,,d],c] = arr
	conosle.log(b,d)//执行拿到的是b和d

//如果返回了一个数组,这个数组是空的,第一个元素上来就是undefined,那么就可以给它一个初始值
	let [x=1] = [100]
</script>



3-3字符串解构

在这里插入图片描述

4.模板字符串


<style>
	.active{
		color:red;
	}
</style>

<ul>

</ul>
<script>
	let name = "tiechui"
	let oli = "<li>\
	<b>"+name+"<b>\
	</li>"
	let oli = `<li>
		<b>${name}</b>
	</li>`
	console.log(oli)


	let arr =["tiechui","zxy","gangdan"]
	//map为数组中的映射
	let newlist = arr.map(function(item){
		return `<li>
			<b>aaaa<b>
		</li>`
	})
	console.log(newlist)//执行结果如下图👇
</script>

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

<head>
	<style>
		.active{
			color:red;
		}
	</style>
</head>
<ul>

</ul>
<script>
	function test(){
		return"返回函数结果"
	}

	let arr =["tiechui","zxy","gangdan"]
	//map为数组中的映射
	let newlist = arr.map(function(item,index){
	//让li的第0行元素是红色
		return `<li class="${index===0?'active':''}">
			<b>${item}<b>
			${test()}
		</li>`
	})
	console.log(newlist)//
//最后,要把上面的li追加到ul里面
	//所以在这里,可以首先获取这个ul这个节点 
	let oul = document.querySelector("ul")
	oul.innerHTML = newlist.join("")/*给ul的HTML附上值,在这里直接把newlist给它附上如果不加“.join("")”的话,它会被强行转为字符串,用逗号分割*/
</script>

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

最终正确执行结果👇
在这里插入图片描述

5.字符串扩展

5-1 include函数

判断字符串中是否存在指定字符

<script>
	let mayname = "zxy"

	console.log(myname.includes("x"))//(是否包含)true(如果是“zy”的话,就是false,因为zy不连在一起)
	console.log(myname.startswith("z"))//(是否在开头位置)true
	console.log(myname.endswith("e"))//(是否在结尾)true
	console.log(myname.includes("e",1))
	console.log(myname.startsWith("e",1))
	console.log(myname.endsWith("z",1))//意思是,1为下标的字符往前的最后一个字符是不是‘z’
</script>
<script>
	let myname = "zxy"
	console.log(myname.includes("z"))//其中包含z吗,包含,所以true
</script>
5-2 repeat函数(重复)

repeat()方法返回一个新字符串,表示将源字符串重复n次

<script>
	let myname = "zxy"

	conosle.log(myname.repeat(3))//zxyzxyzxy
	conosle.log(myname.repeat(0))//""
	conosle.log(myname.repeat(3.5))//zxyzxyzxy
	conosle.log(myname.repeat("3"))//zxyzxyzxy(把字符串转化成一个数值重复3次)
</script>

6.数值扩展

6-1二进制和八进制表示法
<script>
	let count1 = 100
	let count2 = 0x100//十六进制打印出来,变成十进制的显示是256
	let count3 = 0o100//转换成八进制,为64
	let count4 = 0b100//二进制打印出来,变成十进制为4
</script>
<script>
	//1-二进制八进制的写法

</script>
6-2isFinite 与 isNaN方法

减少全局性方法,使得语言逐步模块化

<script>
	let num1 = Number.isFinite(100)//true
	let num2 = Number.isFinite(100/0)//false
	let num3 = Number.isFinite(Infinity)//false
	let num4 = Number.isFinite("100")//false
</script>
<script>
	let num1 = Number.isNaN(100)//false
	let num2 = Number.isNaN(NaN)//true
	let num3 = Number.isNaN("zxy")//false
	let num4 = Number.isNaN("100")//false
</script>

它们与传统的全局方法isFinite()isNaN()的区别在于,传统的方法先调用Number()将非数值的值转为数值,再进行判断,而这两个新方法只对数值有效,Number.isFinite()对于非数值一律返回falseNumber,isNaN()只有对于NaN才返回ture,非NaN一律返回false
在这里插入图片描述

6-3islnteger方法

用来判断一个数值是否为整数

<script>
	let num1 = Number.islnteger(100)//true
	let num2 = Number.islnteger(100.0)//true
	let num3 = Number.islnteger("kerwin")//false
	let num4 = Number.islnteger("100")//true
</script>
6-4极小常量Number.EPSILON

它表示1与大于1的最小浮点数之间的差。2.2204460492503131e-16

<script>
	function isEqual(a,b){
		return Math.abs(a-b)<NUmber.EPSILON
	}
	console.log(inEqual(0.1+0.2,0.3))//true
	console.log(0.1+0.2===0.3)//false
</script>
6-5Math.trunc

将小数部分抹掉,返回一个整数

<script>
	console.log(Math.trunc(1.2))//1
	console.log(Math.trunc(1.8))//1
	console.log(Math.trunc(-1.8))//-1
	console.log(Math.trunc(-1.2))//-1
</script>
6-6Math.sign

Marg.sign方法用来判断一个数到底是正数、复数还是零,对于非数值,会先将其转为数值

<script>
	Math.sign(-100)//-1
	Math.sign(100)//+1
	Math.sign(0)//+0
	Math.sign(-0)//-0
	Math.sign("zxy")//NaN
</script>

7.数组扩展

7-1扩展运算符
<script>
	let arr1 = [1,2,3]
	let arr2 = [4,5,6]
	console.log([...arr1,...arr2])//合并1,2,3,4,5,6
</script>

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

7-2Array.from

将类数组对象转化为真正数组

<ul>
	<li>111</li>
	<li>111</li>
	<li>111</li>
</ul>
<script>
	function test(){
		console.loh(Array.from(arguments))
	}
	test(1,2,3)
	let oli = document.querySelectorAll("li")
	//console.log(Arry.from(oli))
	//olis.map()
		//如果在这里做map的一些操作会立即报错,因为map并不是一个方法
	/*所以就可以利用,Array.from,把它转化成真数组,再调用map方法,再在map中做一些处理就可以了👇*/
	Array.from(olis).map(function(){
		//这种方法就是把类数组结构,转化为数组对象
	})
	
</script>
7-3Array.of

将一组值转化为数组,即新建数组
帮你重新生成一个数组

<script>
	let arr1 = Array(3)
	console.log(arr1)//[..]

	let arr2 = Array.of(3)
	conosle.log(arr2)//[3]
</script>
7-4find findIndex() 方法

1)该方法主要应用于直接找查第一个符合条件的数组元素
2)它的参数是一个回调函数,在回调函数中可以写你要找查的元素的条件,当条件成立为true的时候,返回该元素,如果有符合条件的元素,返回值为undefined

<script>
//find是从前开始找的
	let arr = [11,12,13,14,15]
	let res1 = arr.find(function(item){
		return item>13//find是找值
	})
	let res2 = arr.findIndex(function(item){
		return item>13//findIndex是找下标(索引值)
	})
	console.log(res1)//14
	console.log(res2)//3


//findLast  findLastIndex() 是从后面开始找的(ES13)
	let res = arr.findLast(function(item){
		return item>13/*大于13从后面开始查,所以
		15,从后往前,第一个就查到了,所以打印后是
		15,所以findLastIndex就是4*/
	})

</script>
7-5 fill方法(填充)

初始化数组,或者把数组中的某几个元素进行替换的一个作用

<script>
	let arr = new Array(3).fill("zxy")//创建一个长度为3的空数组,然后.fill,相当于空的内容都填充上zxy这样一个字符串
	console.log(arr)//['zxy','zxy','zxy']

	let arr1 = [11,22,33]
	console.log(arr1.fill("zxy",1,2))/*1,2的意是,
	初始化位置开始,到2结束,也就是把22替换成zxy,如
	果没有1,2的话,那就是11,22,33全都变成zxy*/
</script>
7-6 flat() flatMap()

扁平化方法,就是变成“一维”

<script>
	let arr = [1,2,3,[4,5,6]]/*里面有个数组
	[4,5,6],想要把它扁平化,就是把大括号破掉👇*/
	let arr1 = arr.flat()
	console.log(arr1)
	
//flat
	let arr = [
		["安庆""安阳","鞍山"]
		["北京""保定","包头"]
	]
	conosole.log(arr.flat() )

//flatMap
	let arr = [
		{
			name:"A",
			list:["安庆""安阳","鞍山"]
		},
		{
			name:"B",
			list:["北京""保定","包头"]
		}
	]
	let res = arr.flapMap(function(item){
		return item.list
	})
	conosle.log(res  )
</script>

8.对象扩展

8-1 对象简写
<script>
	let obj = {
		name:"moduleA",
		test1:function(){

		},
		test2:function(){

		}
	}
</script>

在这里插入图片描述

8-2对象属性 表达式
<script>
	let name = "a"
	let obj = {
		name:"zxy"
	}
	console.log(obj)
</script>

如果要把name变成变量
在这里插入图片描述
如果[name]里面再拼接→[name+"bc"],那执行结果就是{abc:'zxy'}

8-3 扩展运算符 ES2018

数组中...个点展开

<script>
	let obj = {
		name:"zxy"
	}//快速的进行复制👇
	let obj1 = {
		...obj//直接把obj展开在这里
	}
	obj1.name = "tiechui"//在这里改了内容,obj1改变了,但是obj不会受到影响
	console.log(obj1)
</script>
<script>
//把obj1和obj2合并到一起,用...破开
	let obj1 = {
		name:"zxy"
	}

	let obj2 = {
		age:100
	}
	console.log({...obj1,...obj2})
</script>

在这里插入图片描述

8-4 Object.assign(快速合并数组)

在对象中用Object.assign进行快速的合并数组

<script>
	let obj1 = {
		name:"kerwin"
	}
	let obj2 = {
		age:100
	}
	let obj3 = {
		name:"zxy"
	}
	console.log(Object.assign(obj1,obj2,obj3))
	/*obj1执行后跟8-3中的结果一样,只有第一项受到影
	响,obj2,obj3都是原样输出,如果希望1,2,3都不收
	到影响的话,可以加一个“let obj = {}”空的*/
</script>
8-5 Object.is

能够判断两个值是否相等

<script>
// ==:值相等
// ===:值相等,类型相同

	console.log(Object.is(5,5))//true
	console.log(Object.is(5,"5"))//false
	console.log(Object.is({},{}))//false
	console.log(Object.is(NaN,NaN))//true
	console.log(Object.is(parseInt("zxy"),NaN))//true
	console.log(Object.is(+0,-0))/*false,它可以判
	断正0和负0是不相等的,但是下面的三个等于号就会认为
	它是相等的*/
	console.log(+0===-0)//true

</script>

9.函数扩展

9-1.函数参数的默认值

参数默认值适用于任何形式的函数,而且非常有用(之前学解构的时候也用过,解构不出来,就用一个默认值)

<script>
/*有人分装了ajax这样一个方法,这个方法传了很多个属性,
有url地址、method方法(里面表示着get,post)、async
是否异步。正常使用的时候,里面可能传不同的地址,method
是get请求,异步的方式。*/
	function ajax(url,method,async){
			console.log(url,method,async)
	}
	ajax("/aaa","get",true)
	//以上代码这样,传了三个实参和三个形参
</script>

在这里插入图片描述

9-2.rest参数 剩余参数
<script>
	function test(...date){
		console.log(date)
	}
	test(1,2,3,4,5,6)
</script>

在这里插入图片描述

9-3. name属性
<script>
	conosole.log(text.name)
	//执行后拿到“test”
</script>
9-4. 箭头函数*

箭头函数:写法简洁

<script>
	function test(){
	
	}//这是声明式的

//赋值式👇
	let test = function(){
		
	}
//箭头函数“=>”:写法上,省略的上面function单词的拼写(这是箭头函数最初是的一种写法)
	let test = ()=>{
		console.log("test")
	}
	test()
</script>

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

10.Symbol

ES6引入了一种新的原始数据类型Symbol,表示独一无二的值,它属于JS语言的原生数据类型之一,其他的数据类型是:undefined,null,布尔值(Boolean),字符串(String),数值(Number),对象(Object)。

1.使用Symbol作为对象属性名

<script>
	let name = Symbol()
	let age = Symbol()
	var obj = {
		[name]:"zxy",
		[age]:100
	}
	console.log(obj)
</script>

2.Symbol()函数可以接受一个字符串作为参数,表示对Symbol实例的描述。比较容易区分

<script>
	let name = Symbol("name")
	let age = Symbol("age")
	var obj = {
		[name]:"zxy",
		[age]:100
	}
	console.log(obj)
</script>

关于Symbol的笔记如下👇***
在这里插入图片描述

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

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

相关文章

泽攸科技ZEM20台式扫描电镜低真空下的应用案例

低真空扫描电子显微镜是显微技术领域的重要分支&#xff0c;与传统的高真空扫描电子显微镜相比&#xff0c;低真空电镜对含水、多孔、不耐电子束烧伤和不适合喷金处理的样品进行直接观测并具有更好的效果&#xff0c;对于生物样品而言低真空电镜比高真空电镜更具有优势&#xf…

【sklearn练习】preprocessing的使用

介绍 scikit-learn 中的 preprocessing 模块提供了多种数据预处理工具&#xff0c;用于准备和转换数据以供机器学习模型使用。这些工具可以帮助您处理数据中的缺失值、标准化特征、编码分类变量、降维等。以下是一些常见的 preprocessing 模块中的功能和用法示例&#xff1a; …

Mac/Linux虚拟机CrossOver2024新版下载使用教程

CrossOver不像Parallels或VMware的模拟器&#xff0c;而是实实在在Mac OS X系统上运行的一个软件&#xff0c;该软件可以让用户在mac是上直接运行windows软件&#xff0c;本文为大家带来的是CrossOver Mac版安装教程&#xff01; CrossOver Mac-安装包下载如下&#xff1a;http…

【鸿蒙4.0】harmonyos Day 03

一.ArkUI组件-Text 1.Text:文本显示组件 语法&#xff1a;Text(content?:string|Resource) string格式&#xff0c;直接填写文本内容 Text(我是bug天选之子) Resource格式&#xff0c;读取本地资源文件 Text($r(app.string.width_label)) "app.string.width_label&q…

LUT预设.cube格式PR/达芬奇/FCP/剪映等视频电影调色预设LUTs

对于将标准镜头转换为让人想起高端电影的视觉冲击场景至关重要。这些LUT经过专业设计&#xff0c;以模仿电影行业中的电影质量、深度和情感&#xff0c;使其成为电影制作人、摄像师和内容创作者的理想选择&#xff0c;希望为你的作品带来专业的电影色彩。 电影LUT的类别&#…

Hyperledger Fabric 架构概览

fabric 版本 v2.4.1 超级账本 Fabric 自诞生以来已经发布了两个主要版本&#xff1a;1.0 系列版本&#xff08;2017 年 7 月&#xff09;和 2.0 系列版本&#xff08;2020 年 1 月&#xff09;。2016 年 9 月&#xff0c;Fabric 发布了 v0.6.0 预览版本&#xff0c;通过这一版本…

【Flutter 开发实战】Dart 基础篇:常用运算符

在Dart中&#xff0c;运算符是编写任何程序的基本构建块之一。本文将详细介绍Dart中常用的运算符&#xff0c;以帮助初学者更好地理解和运用这些概念。 1. 算术运算符 算术运算符用于执行基本的数学运算。Dart支持常见的加、减、乘、除、整除以及取余运算。常见的算数运算符如…

HarmonyOS@State装饰器:组件内状态

State装饰器&#xff1a;组件内状态 State装饰的变量&#xff0c;或称为状态变量&#xff0c;一旦变量拥有了状态属性&#xff0c;就和自定义组件的渲染绑定起来。当状态改变时&#xff0c;UI会发生对应的渲染改变。 在状态变量相关装饰器中&#xff0c;State是最基础的&…

3D Surface Subdivision Methods 3D 曲面细分方法

文章目录 1 介绍2 细分法3 一个简单的例子&#xff1a;Catmull-Clark 细分4 Catmull-Clark 细化5 Refinement Host6 Geometry Policy7 四种细分方法8 示例&#xff1a;自定义细分方法9 实施历史 原文地址: https://doc.cgal.org/latest/Subdivision_method_3/index.html#Chapte…

深入了解选择重传协议(Selective Repeat Protocol)

选择重传协议&#xff08;Selective Repeat Protocol&#xff09;是计算机网络中常用的一种数据链路层协议&#xff0c;用于确保数据的可靠传输。本文将深入探讨选择重传协议的原理、应用场景及优缺点。 选择重传协议的核心思想是在发送端发送数据时&#xff0c;每一帧都被编号…

git ssh key 配置

一、Profile Settings-->SSH Keys 我们点击这里会有详情的文档介绍生成sshkey。 ssh-keygen -t rsa -b 2048 -C "邮箱" --回车... 将生成的id_rsa.pub粘贴到如下保存 git config --global user.name "用户名" git config --global user.email "邮…

苹果电脑交互式原型设计软件Axure RP 9 mac特色介绍

Axure RP 9 for Mac是一款交互式原型设计软件&#xff0c;使用axure rp9以最佳的方式展示您的作品&#xff0c;优化现代浏览器并为现代工作流程设计。同时确保您的解决方案正确完整地构建。Axure RP 9 for Mac为您整理笔记&#xff0c;将其分配给UI元素&#xff0c;并合并屏幕注…

apk反编译修改教程系列---修改apk包名等信息 让一个应用拥有无限分身 手机电脑同步演示【九】

往期教程&#xff1a; apk反编译修改教程系列-----修改apk应用名称 任意修改名称 签名【一】 apk反编译修改教程系列-----任意修改apk版本号 版本名 防止自动更新【二】 apk反编译修改教程系列-----修改apk中的图片 任意更换apk桌面图片【三】 apk反编译修改教程系列---简单…

Java后端开发——SSM整合实验

文章目录 Java后端开发——SSM整合实验一、常用方式整合SSM框架二、纯注解方式整合SSM框架 Java后端开发——SSM整合实验 一、常用方式整合SSM框架 1.搭建数据库环境&#xff1a;MySQL数据库中创建一个名称为ssm的数据库&#xff0c;在该数据库中创建一个名称为tb_book的表 …

Spark MLlib ----- ALS算法

补充 在谈ALS(Alternating Least Squares)之前首先来谈谈LS,即最小二乘法。LS算法是ALS的基础,是一种数优化技术,也是一种常用的机器学习算法,他通过最小化误差平方和寻找数据的最佳匹配,利用最小二乘法寻找最优的未知数据,保证求的数据与已知的数据误差最小。LS也被用…

Fastdata极数公司介绍

【写在开头】 前不久看到一句话和一个新闻&#xff0c;“数据作为主要生产要素&#xff0c;以资源化为起点&#xff0c;经历资产化、资本化阶段&#xff0c;逐步实现数据价值。” 2023年10月25日&#xff0c;国家数据局正式揭牌&#xff0c;由国家发展和改革委员会管理。 初看…

4.2 MATRIX MULTIPLICATION

矩阵-矩阵乘法&#xff0c;或简称矩阵乘法&#xff0c;在 i X j&#xff08;i 行 by j 列&#xff09;矩阵 M 和 j x k 矩阵 N 之间产生 i X k 矩阵P。矩阵乘法是基本线性代数子程序&#xff08;BLAS&#xff09;标准的重要组成部分&#xff08;见第3章中的“线性代数函数”边栏…

SpringBoot-开启Actuator监控

Spring Boot Actuator是Spring Boot提供的一种管理和监控应用程序的框架&#xff0c;可以帮助我们了解应用程序的运行状况&#xff0c;提供HTTP端点来暴露应用程序的不同方面&#xff0c;如健康状况、指标、日志和运行时信息等。 开启Actuator监控&#xff0c;我们可以通过HTT…

IDEA+Git——项目分支管理

IDEAGit——项目分支管理 1. 前言2. 基础知识点2.1. 分支区分2.2. Git 代码提交规范2.3. 四个工作区域2.4. 文件的四种状态2.5. 常用命令2.6 注重点 3. IDEA分支管理 1. 前言 在Git中&#xff0c;分支是项目的不同版本&#xff0c;当开始开发一个新项目时&#xff0c;主分支通常…

基于Java SSM框架实现班级同学录管理系统项目【项目源码】计算机毕业设计

基于java的SSM框架实现班级同学录管理系统演示 SSM框架 当今流行的“SSM组合框架”是Spring SpringMVC MyBatis的缩写&#xff0c;受到很多的追捧&#xff0c;“组合SSM框架”是强强联手、各司其职、协调互补的团队精神。web项目的框架&#xff0c;通常更简单的数据源。Spri…