ES6相关操作
一.JavaScript的基础语法
1.Demo1.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JavaScript基础语法</title><script>function firstMethod(){var d=new Date()d.setDate(d.getDate()-3)alert(d.toString())}</script><script src="javascript.js"></script>
</head>
<body><input type="button" value="按钮1" onclick="alert('Hello World')"><br><input type="button" value="按钮2" onclick="firstMethod()"><br><input type="button" value="按钮3" onclick="method1()"><br>基础<br>常量和变量<br>声明变量的语法结构:var 变量名=初始值;变量名(标识符):由字母,数字,下划线,$符号组成,不能以数字开头,不能是系统的关键字,常量名大写<br>注释://和/**/<br>Javascript大小写敏感数据类型<br><pre>数据类型: 基本类型:string number boolean特殊类型:null undefined复杂类型:Date Math Array Object </pre><br>数组的操作<input type="text" id="txtArray" value="123,2,5,96,8,56"><input type="button" value="翻转" onclick="method2(1)"><input type="button" value="排序(按字母排序)" onclick="method2(2)"><input type="button" value="翻转(按数字排序)" onclick="method2(3)"><br>随机数1-30<input type="button" value="1-30随机数" onclick="randomNumber()"><br>数据类型转换:隐式转换--转换函数<br><input type="button" value="隐式转换" onclick="converDate()"><br>显示转换:parseInt\parseFloat\toString\isNaN(是否是数字)<br><input type="text" id="txtDate"><input type="button" value="计算平方" onclick="getSquare()"><br>运算符<br>== ===严格相等(包括类型)三元运算符 表达式?value1:value2<br><input type="text" id="txtNumber" onblur="guess()"><br>流程控制语句:条件(if/else--switch/case) 循环(for while)<br><input type="button" value="累加1到50的和" onclick="getSum()"><br>用户名(3-5位字母和数字的组合)<input type="text" id="txtName" onblur="judgeName()"><br><input type="button" value="方法重载" onclick="tryArguments(10,10)"><br><input type="button" value="函数的定义方式" onclick="testFunction()"><br><input type="button" value="1" onclick="cal(this.value)"><input type="button" value="2" onclick="cal(this.value)"><input type="button" value="3" onclick="cal(this.value)"><input type="button" value="4" onclick="cal(this.value)"><input type="button" value="+" onclick="cal(this.value)"><input type="button" value="-" onclick="cal(this.value)"><input type="button" value="=" onclick="cal(this.value)"><input type="text" id="txtData1"></body>
</html>
二.BOM对象:浏览器对象模型
2.Demo2.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>BOM对象</title><script>//删除提示框function deleteDate(){var r=window.confirm("你是否真的要删除")alert(r)}//打开窗口function openWin(){window.open("http://www.baidu.com","baidu","width=200,height=300,toolbar=yes")}//显示时间function showTime(){var now=new Date()document.getElementById("txtTime").value=now.toLocaleTimeString()}//启动时间var timer;function startTime(){timer=window.setInterval("showTime()",1000)}//停止函数function stopTime(){window.clearInterval(timer)}//定时操作function wait(){window.setTimeout("alert('hello')",3000)}</script>
</head>
<body>删除提示框<input type="button" value="删除文本" onclick="deleteDate()"><br>打开窗口<input type="button" value="打开窗口" onclick="openWin()"><br>有关时间的操作<input type="text" id="txtTime"><input type="button" value="显示时间"onclick="showTime()"><input type="button" value="启动时间"onclick="startTime()"><input type="button" value="停止时间"onclick="stopTime()"><input type="button" value="定时操作"onclick="wait()">
</body>
</html>
三.DOM对象:文档对象模型
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>DOM对象操作</title><script>function testDOM(){//页面中由多少个input元素var n=document.getElementsByTagName("input").length//修改图形var imgObj=document.getElementById("img1")imgObj.src="2.png"//修改链接var linkObj=document.getElementById("link1")linkObj.innerHTML="AAAAA"linkObj.href="http://www.baidu.com"//修改段落var pObj=document.getElementById("p1")pObj.innerHTML="后天也休息"pObj.style.color="red"pObj.style.backgroundColor="green"pObj.style.fontSize="30px"//修改标题样式var h3Obj=document.getElementById("h31")h3Obj.className="mystyle"//列表个数var ulObj=document.getElementById("ul1")var count=0for(var i=0;i<ulObj.childNodes.length;i++){if(ulObj.childNodes[i].nodeName=="LI"){count++}}alert(count)}</script><style rel="stylesheet">.mystyle{border:1px solid #000;}</style>
</head>
<body><input type="button" value="开始" onclick="testDOM()"><br><img src="1.png" id="img1"><a href="#" id="link1">click me</a><p id="p1">明天休息了</p><h3 id="h31">可以利用休息的时间来武装自己</h3><ul id="ul1"><li>1</li><li>2</li><li>3</li></ul>
</body>
</html>
四.综合练习---购物车
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JavaScript5综合练习</title><script>//增加的函数function add(btnObj){//得到传入对象的父对象的所有子对象var nodes=btnObj.parentNode.childNodes;//循环所有的子节点找到文本框对象for(var i=0;i<nodes.length;i++){var child=nodes[i]if(child.nodeName=="INPUT"&&child.type=="text"){var n=parseInt(child.value)n++child.value=n}}//计算小计及总计calSum()}//减少函数function sub(btnObj){//得到传入对象的父对象的所有子对象var nodes=btnObj.parentNode.childNodes;//循环所有的子节点找到文本框对象for(var i=0;i<nodes.length;i++){var child=nodes[i]if(child.nodeName=="INPUT"&&child.type=="text"){var n=parseInt(child.value)n--child.value=n}} //计算小计及总计calSum()}//对表格进行操作function calSum(){//找到表格中所有的trvar tableObj=document.getElementById("table1")//获得表格中的所有行var rows=tableObj.getElementsByTagName("tr")//循环获得每一行var total=0//存放总计的值for(var i=1;i<rows.length;i++){//得到当前行var row=rows[i]//找到价格var price=parseFloat(row.getElementsByTagName("td")[1].innerHTML)//找到数量var num= parseInt(row.getElementsByTagName("td")[2].getElementsByTagName("INPUT")[1].value)//计算小计var sum=price*num//将计算的小计结果给到小计单元格中row.getElementsByTagName("td")[3].innerHTML=sum.toFixed(2)//累加总计total+=sum}//将总计的值赋值给总计元素document.getElementById("totalPrice").innerHTML=total.toFixed(2)}</script>
</head>
<body onload="calSum()"><table border="1" id="table1"><tr><td>名称</td><td>价格</td><td>数量</td><td>小计</td></tr><tr><td>红烧肉</td><td>35</td><td><input type="button" value="-" onclick="sub(this)"><input type="text" value="1" readonly><input type="button" value="+" onclick="add(this)"></td><td></td></tr><tr><td>锅包肉</td><td>45</td><td><input type="button" value="-" onclick="sub(this)"><input type="text" value="2" readonly><input type="button" value="+" onclick="add(this)"></td><td></td></tr><tr><td>回锅肉</td><td>25</td><td><input type="button" value="-" onclick="sub(this)"><input type="text" value="1" readonly><input type="button" value="+" onclick="add(this)"></td><td></td></tr></table>总计:<span id="totalPrice"></span>
</body>
</html>
五.级联操作
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JavaScript5综合练习</title>
</head>
<body>级联操作:通过一个元素控制另外一个元素中的内容,如省市的选择<br>省:<select id="sel1" onchange="createCities()"><option>---请选择---</option><option>北京</option><option>河南</option><option>辽宁</option><option>河北</option></select>城市:<select id="selCity"><option>---请选择---</option></select><script>//创建数组用于存放城市信息var array=new Array()array[0]=["请选择"]array[1]=["海淀","朝阳"]array[2]=["郑州","开封"]array[3]=["沈阳","大连","鞍山"]array[4]=["石家庄","邯郸"]//创建用于选择城市的函数function createCities(){//获得省份下拉列表中对应的下标值var index=document.getElementById("sel1").selectedIndex//获得对应省份的城市var data=array[index]//清除城市中所包含的原选项var selCity=document.getElementById("selCity")//设置城市子选项的长度为0selCity.options.length=0//加入新选项for(var i=0;i<data.length;i++){var obj=new Option(data[i])selCity.add(obj)}}</script>
</body>
</html>
六.节点操作
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>节点的操作</title>
</head>
<body><form id="form1"><input type="button" value="添加节点" onclick="addNewNode()"></form><script>function addNewNode(){//找到表单元素var formObj=document.getElementById("form1")//添加文本框var inputTextObj=document.createElement("input")inputTextObj.type="text"inputTextObj.value="doudou"formObj.appendChild(inputTextObj)//添加段落var pObj=document.createElement("p")pObj.innerHTML="孙桂月"formObj.insertBefore(pObj,formObj.firstChild)//添加按钮var btnObj=document.createElement("input")btnObj.type="button"btnObj.value="提交"//为按钮定义事件btnObj.onclick=function(){alert("click me")}formObj.appendChild(btnObj)}</script>
</body>
</html>
七.表格操作
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>表格操作</title>
</head>
<body>ID:<input type="text" id="txtID">Name:<input type="text" id="txtName"><input type="button" value="添加" onclick="addRow()"><table id="t1" border="1"><tr><td>ID</td><td>Name</td></tr><tr><td>1</td><td>doudou</td></tr></table><script>function addRow(){//获得表格对象var t=document.getElementById("t1")//获得表格的行数var v=t.rows.length//在表格中新增一行var row=t.insertRow(v)//为新增行添加单元格var cell1=row.insertCell(0)cell1.innerHTML=document.getElementById("txtID").valuevar cell2=row.insertCell(1)cell2.innerHTML=document.getElementById("txtName").value}</script>
</body>
</html>
八.练习----随机点名
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>随机点名</title><script>var interFunc;//存放姓名的数组var arr=new Array()arr[0]="张三"arr[1]="李四"arr[2]="王五"arr[3]="赵六"arr[4]="马七"arr[5]="侯八"//根据下标数获取姓名的函数function displayName(index){//将获取的姓名赋值给文本框document.getElementById("name").value=arr[index]}//获得随机数的函数function getRandom(small,big){return small+Math.floor(Math.random()*(big-small+1))}//整合随机数获取姓名function dealFunc(){displayName(getRandom(0,(arr.length-1)))}//运行function run(val){if(val=="开始"){document.getElementById("btn").value="停止"//文本框中滚动出现姓名,回调函数,每隔30毫秒调用一次整合函数interFunc=setInterval("dealFunc()",30)}else{document.getElementById("btn").value="开始"clearInterval(interFunc)}}</script>
</head>
<body><div align="center"><input type="text" id="name" style="width:4em; height:1.2em; font-size: 72px; vertical-align: middle; text-align: center;" readonly><input type="button" id="btn" value="开始" style="width:5em; height:1.2em; font-size: 42px;" onclick="run(this.value)"></div>
</body>
</html>
九.变量的声明及特性
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>变量的声明及特性</title><style>.item{width:100px;height:50px;border:1px solid #000;margin-left:20px;float:left;}</style>
</head><body><script>//声明变量let a;let d,b,c;let e=100let f=120,g='ilovescript',h=[]//注意//1.变量不能重复声明let star='刘德华'//let star='华仔'//2.块级作用域 if else while for {}{let name='周杰伦'}console.log(name)//3.不能在声明前使用//console.log(age)//let age=20// console.log(age)// var age=20//4.不影响作用域链// {// let goods='显示器'// function fn(){// console.log(goods)// }// fn()// }</script><div><h2>点击切换颜色</h2><div class="item"></div><div class="item"></div><div class="item"></div></div><script>//获得div元素let items=document.getElementsByClassName('item')//遍历item数组,获得每一个元素,并为元素添加单击事件for(let i=0;i<items.length;i++){items[i].onclick =function(){//设置背景颜色items[i].style.backgroundColor='pink'}}</script>
</body>
</html>
十.常量声明及特点
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>常量声明及特点</title>
</head>
<body><script>//常量:在程序执行的过程中不会发生改变的值称为常量//1.声明常量const SCHOOL='东北大学'//2.常量的特点//2.1.一定要付初始值const CORDID=1;//2.2常量的名字要大写(潜规则)const A=1//2.3常量值不能修改//A=2//2.4可以对数组和对象的元素进行修改const team=['A','B','C']team.push('D')//向数组中追加数据</script>
</body>
</html>
十一.解构赋值
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>解构赋值</title>
</head>
<body><script>//解构赋值:将复杂结构数据拆解开,与简单结构进行数据交互//数组:const F4=['小沈阳','赵四','刘能','宋小宝']let[f1,f2,f3,f4]=F4console.log(f1)console.log(f2)console.log(f3)console.log(f4)const zhaobenshan={name:'赵本山',age:76,sex:'男',sayHi:function(){console.log("我的特长是演小品")}}let {name,age,sex,sayHi}=zhaobenshanconsole.log(name)console.log(age)console.log(sex)sayHi()</script>
</body>
</html>
十二.模板字符串
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>模板字符串</title>
</head>
<body><script>//模板字符串:ES6引入新的字符串的方式"",'',``//1.声明let str=`我是ES6中增加的定义字符串的方式`console.log(str,typeof str)//2.特点//2.1在字符串中可以出现换行let str1=`<ul></ul>`//2.2.变量拼接let name1='鹊刀门2'let out =`${name1}是一部具备东北特色喜剧`console.log(out)</script>
</body>
</html>
十三.函数
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>函数</title>
</head>
<body><script>//函数:JavaScript函数用于执行特定任务或计算功能的代码块。可以重复使用的代码块//语法结构:function 函数名(参数列表){执行过程}//特点:函数可以接收输入的参数,并可以通过return关键字返回数据//优势:函数的优势在于提高代码的可重用性和模块化编程//声明一个函数let fn=function(a,b){console.log(a,b,a+b)return a+b}let sum=fn(1,2)console.log(sum)//ES6允许使用箭头函数let fn1 =(a,b)=>{return a+b}let sum1=fn1(1,2)console.log(sum1)/*注意:关于this的使用在箭头函数中,this是在定义函数的时候绑定的,而不是在执行函数的时候绑定的。this指向的固定化,是因为箭头函数根本没有自己的this,所以不能用作构造函数*/// var x=1;// var obj={// x:2,// sayHi:()=>{// console.log(this.x)// }// }// obj.sayHi()// //对比普通函数// var obj={// x:2,// sayHi:function(){// console.log(this.x)// }// }// obj.sayHi()//注意:箭头函数不能构造实例化对象// let Person=(name,age)=>{// this.name=name;// this.age=age;// }// let me=new Person('小沈阳',30)// console.log(me)// let Person=function(name,age){// this.name=name;// this.age=age;// }// let me=new Person('小沈阳',30)// console.log(me)//注意:箭头函数不能使用arguments//arguments解释:不用形参(函数的参数列表),通过arguments可以记录传入的实参。// function showArguments(){// console.log(arguments[0],arguments[1])// }// showArguments(1,2)// //注意:箭头函数可以简写// let pow=(n)=>n*n// console.log(pow(9))</script><div id="box" style="width: 200px;height: 200px;background-color: aquamarine;"></div><script>//箭头函数的应用案例//需求1:单击div 2s后颜色变换//获得页面中id值为div的元素let box =document.getElementById("box")//为box元素添加单击事件// box.addEventListener("click",function(){// let _this=this// //定时函数// setTimeout(function(){// _this.style.background='pink'// },2000)// })//ES6箭头函数实现,箭头函数可以找到事件源box.addEventListener("click",function(){//定时函数setTimeout(()=>{this.style.background='pink'},2000)})//需求2:从数组中获取偶数的元素const arr=[1,6,9,10,100,21]//filter()过滤器,用于遍历数组的每一个元素// const result=arr.filter(function(item){// if(item%2==0){// return true;// }else{// return false;// }// })// console.log(result)//使用箭头函数完成需求// const result=arr.filter((item)=>{// if(item%2==0){// return true;// }else{// return false;// }// })//简易写法const result=arr.filter(item=>item%2==0)console.log(result)</script>
</body>
</html>
十四.函数参数的设置
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>函数参数的设置</title>
</head>
<body><script>//在ES6中允许参数赋初值function add(a,b,c=3){}add(1,2)//ES6中支持参数解构function connection({host='127.0.0.1',username,password,prot}){// let host=options.host// let username=options.username}connection({host:'192.168.1.1',username:'root',password:'123123',port:3306})//ES6引入了rest参数,用于替换arguments,注意...args写在最后function date(a,b,...args){console.log(a)console.log(b)console.log(args)}date('小沈阳','赵四','刘能','宋小宝')</script>
</body>
</html>
十五.数组的相关操作
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>数组的相关操作</title>
</head>
<body><div></div><div></div><div></div><script>//数组的合并const fenghuang = ['曾毅','玲花']const kaixin = ['沈腾','马丽','艾伦']const kuajie = fenghuang.concat(kaixin)const kuajie1 = [...fenghuang,...kaixin]console.log(kuajie1)//数组的克隆const fh = [...fenghuang]//将伪数组转换成真正的数组数据const divs = document.querySelectorAll('div')//页面中所有的div元素const divArr = [...divs]console.log(divArr)</script>
</body>
</html>
十六.数据类型
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>数据类型</title>
</head>
<body><script>//数据类型:在程序执行的过程中可以操作哪些数据种类//在JavaScript中共提供了7种基本数据类型/*USONBu---undefined 空(什么都没有)s---string 字符串 symbol 唯一(ES6中新增的)o---object 对象n---number 数字 null 空值b---boolean 布尔Symbol特点:1.值是唯一的2.不能与其他的数据进行运算3.定义的对象属性不能使用for......in循环遍历*///创建let a=Symbol()console.log(a,typeof a)let b=Symbol('wahaha')let b1=Symbol('wahaha')console.log(b===b1)let c=Symbol.for('wahaha')let c1=Symbol.for('wahaha')console.log(c===c1)//let result=a+100//let result1=b>'gaga'//使用场景var age=Symbol()var person={[Symbol('name')]:'zs',[age]:12}console.log(person.name)console.log(person.age)//symbol内部提供了哪些内置函数</script>
</body>
</html>
十七.Promise
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Promise</title>
</head>
<body><script>//Promise是ES6引入的异步编程工具。// 语法上Promise是一个构造函数,用于封装异步操作并可以获取操作成功或失败的结果//Promise构造函数:Promise(excutor){}//Promise的常用函数:then,catch//实例化Promise对象(创建Promise工具)// let data="请求数据"//该数据为服务器的数据// reject(data)// })// //调用Promise的then方法// p.then(function(value){// //编写响应值// })</script>
</body>
</html>
十八.ECMA的相关操作
#一·ECMA的相关介绍
##1.什么是ECMA,欧洲计算机制造商协会(谷歌,微软,IBM),这个组织的目标是评价,开发和认可电信和计算机的相关标准。1994年更名为ECMA
##2.官网
https://ecma-international.org/
#二.ECMAScript相关介绍
##1.什么是ECMAScript
由ECMA国际通过ECMA-262标准化的脚本程序设计语言,ECMA国际制定了许多标准,而ECMA-262是其中之一
#三.ECMAScript262的发展历史
##1.官网
1.https://ecma-international.org/publications-and-standards/standards/ecma-262/
##2.各版本特点
-第1版本 1997年 制定了语言的基本语法
-第2版本 1998年 略
-第3版本 1999年 引入了正则表达式,异常处理,格式化输出,IE开始支持。
-第4版本 2007年 略
-第5版本 2009年 引入严格模式,JSON,扩展对象,数组,原型,字符串,日期等函数
-第6版本 2015年 模块化,面向对象语法,Promise,箭头函数,let,const,数组解构赋值等
-第7版本 2016年 幂运算符,数组拓展,async/await关键字
-第8版本 2017年 async/await关键字,字符串扩展
-第9版本 2018年 对象解构赋值,正则扩展
-第10版本 2019年 扩展对象,数组方法
十九.使用Promise封装Ajax
//创建可以读取外部文件的工具
const fs=require('fs') // fs.readFile('为学.md',(err,data)=>{// if(err) throw err;//如果读取文件失败则输出错误信息// console.log(data.toString())// })
//将读取文件的过程封装到Promise中
const p=new Promise(function(resolve,reject){fs.readFile('为学.md',(err,data)=>{//判断是否读取失败if(err) reject(err);//如果读取成功resolve(data)})
})
//配合promise展示数据
p.then(function(value){console.log(value.toString())
},function(reason){console.log("读取失败!!")
})
//使用Promise封装Ajax
//Ajax是ES5中提供的用于异步提交的工具,可以通过该工具实现客户端与服务器端进行数据交互
//Ajax也称为局部提交或局部刷新
//1.创建Ajax对象
const xhr=new XMLHttpRequest()
//2.配置访问地址及访问方式
xhr.open("GET","http://www.baidu.com")
//3.发送数据
xhr.send('向服务端发送的数据')
//4.处理响应结果
xhr.onreadystatechange=function(){//判断响应协议值if(xhr.readyState===4){//4有返回值if(xhr.status >=200 &&xhr.status<300){//表示成功console.log(xhr.response)//打印数据}else{//表示失败console.error(xhr.status)}}
}
//使用Promise封装Ajax
const p1=new Promise((resolve,reject)=>{//1.创建Ajax对象const xhr=new XMLHttpRequest()//2.配置访问地址及访问方式xhr.open("GET","http://www.baidu.com")//3.发送数据xhr.send('向服务端发送的数据')//4.处理响应结果xhr.onreadystatechange=function(){//判断响应协议值if(xhr.readyState===4){//4有返回值if(xhr.status >=200 &&xhr.status<300){//表示成功resolve(xhr.response)//打印数据}else{//表示失败reject(xhr.status)}}}
})
//指定回调
p1.then(function(value){console.log(value)
},function(reason){console.log(reason)
})
相关文章:
ES6相关操作
一.JavaScript的基础语法 1.Demo1.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>JavaScrip…...
【运维】源码编译安装cmake
背景: 已经在本地源码编译安装gcc/g,现在源码安装cmake 下载源码 下载地址:CMake - Upgrade Your Software Build System 安装步骤: ./bootstrap --prefix/usr/local/cmake make make install 错误处理 1、提示找不到libmpc.…...
代码随想录_回溯
代码随想录_回溯 回溯 77.组合 77. 组合 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 思路: 回溯 优化: 剪枝 注意代码中i,就是for循环里选择的起始位置。 for (int i startIndex; i <…...
tauri2实现监听记住窗口大小变化,重启回复之前的窗口大小
要想实现记住窗口大小的功能,整体逻辑就是要监听窗口大小变化,将窗口大小保存下来,重启之后,读取保存的大小,然后恢复。这里可以使用rust层实现,也可以在前端实现。我这里就纯rust层实现了。 监听窗口变化…...
番茄工作法html实现
对比了deepseek-r1-online和本地部署的14b的版本,输出的输出的html页面。 在线满血版的功能比较强大,可以一次完成所有要求。14b版本的功能有一些欠缺,但是基本功能也是写了出来了。 input write a html named Pomodoro-clock which “hel…...
C++:dfs,bfs各两则
1.木棒 167. 木棒 - AcWing题库 乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过 5050 个长度单位。 然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。 请你设计一个程序…...
【ORB-SLAM3】鲁棒核函数的阈值设置
问题背景 阈值 δ \delta δ 是 Huber 鲁棒核函数的重要参数。首先给出结论,在ORB-SLAM系列中,该阈值选取的原则为: 单目情况下,根据95%置信水平下两自由度卡方检验的临界值, δ \delta δ 设置为 5.991 \sqrt{5.9…...
四种常见图形库GLUT,SDL,SFML和GLFW简介
GLUT、SDL、SFML 和 GLFW 是四种常用的库,用于管理窗口、输入和上下文创建,通常与 OpenGL 结合使用以实现图形渲染。以下是它们的详细介绍、常用应用场合和具体案例。 1. GLUT(OpenGL Utility Toolkit) 简介 GLUT 是一个用于创建…...
C++类和对象进阶:初始化列表和static成员深度详解
C类和对象:初始化列表和static成员深度详解 1. 前言2. 构造函数初始化成员变量的方式2.1 构造函数体内赋值2.2 初始化列表2.2.1 初始化列表的注意事项 2.3 初始化列表的初始化顺序 3. 类的静态成员3.1 引入3.2 静态成员变量3.3 静态成员函数3.4 静态成员的注意事项3…...
[C#]C# winform部署yolov12目标检测的onnx模型
yolov12官方框架:github.com/sunsmarterjie/yolov12 【测试环境】 vs2019 netframework4.7.2 opencvsharp4.8.0 onnxruntime1.16.3 【效果展示】 【调用代码】 using System; using System.Collections.Generic; using System.ComponentModel; using System.…...
阿里云k8s服务部署操作一指禅
文章目录 DockerFile镜像操作阿里云k8s服务部署 DockerFile # 使用 JDK 17 官方镜像 # linux架构:FROM --platformlinux/amd64 openjdk:17-jdk-slim # arm架构:openjdk:17-jdk-slim FROM --platformlinux/amd64 openjdk:17-jdk-slim# 设置工作目录 WORK…...
Transformer LLaMA
一、Transformer Transformer:一种基于自注意力机制的神经网络结构,通过并行计算和多层特征抽取,有效解决了长序列依赖问题,实现了在自然语言处理等领域的突破。 Transformer 架构摆脱了RNNs,完全依靠 Attention的优…...
球队训练信息管理系统设计与实现(代码+数据库+LW)
摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装球队训练信息管理系统软件来发挥其高效地信息处理的作用&a…...
【存储中间件API】MySQL、Redis、MongoDB、ES常见api操作及性能比较
常见中间件api操作及性能比较 ☝️ MySQL crud操作✌️ maven依赖✌️ 配置✌️ 定义实体类✌️ 常用api ☝️ Redis crud操作✌️ maven依赖✌️ 配置✌️ 常用api ☝️ MongoDB crud操作✌️ maven依赖✌️ 配置文件✌️ 定义实体类✌️ MongoDB常用api ☝️ ES crud操作 ⭐️…...
UE_C++ —— Gameplay Classes
目录 一,Adding Classes 二,Class Headers Class Declaration Class Specifiers Metadata Specifiers 三,Class Implementation Class Constructor 引擎中每个游戏类都由一个类头文件(.h)和一个类源文件&#x…...
windows上vscode cmake工程搭建
安装vscode插件: 1.按装fastc(主要是安装MinGW\mingw64比较方便) 2.安装C,cmake,cmake tools插件 3.准备工作完成之后,按F1,选择cmake:Quick Start就可以创建一个cmake工程。 4.设置Cmake: G…...
软件测试:1、单元测试
1. 单元测试的基本概念 单元(Unit):软件系统的基本组成单位,可以是函数、模块、方法或类。 单元测试(Unit Testing):对软件单元进行的测试,验证代码的正确性、规范性、安全性和性能…...
如果后台的Long类型的数据返回是null,那么Android客户端的数据bean的kotlin的Long类型的字段接受到数据后是null空指针吗?
如果后台的Long类型的数据返回是null,那么Android客户端的数据bean的kotlin的Long类型的字段接受到数据后是null空指针吗? DeepSeek R1 思考 35 秒 思考过程 好的,用户的问题是关于在Android客户端使用Kotlin处理后台返回的Long类型数据为n…...
Vue3 打造 Windows 桌面个性高效组件工具
软件介绍 Widgets 这款基于 Vue3 构建的开源 Windows 桌面小部件工具超实用。 其多样化组件库涵盖超 20 种,从倒计时、打工进度等实用工具,到抖音热榜等实时资讯组件应有尽有,各组件独立运行,满足多场景需求。 高度自定义布局支持…...
学习笔记-沁恒第四讲-米醋
一, 语音模块:数据包发送 刷卡模块:数据包接收 AS608:数据包发送接收 二,第三讲文件夹改成第四讲,工程也改成第四讲 三,目前在内存里面。保存新值,掉电会丢失 u8 password[6]{1,…...
epoll_event的概念和使用案例
epoll_event 是 Linux 下 epoll I/O 多路复用机制的核心数据结构,用于描述文件描述符(File Descriptor, FD)上发生的事件及其关联的用户数据。通过 epoll,可以高效地监控多个文件描述符的状态变化(如可读、可写、错误等…...
容器和虚拟机选择对比
1. 概述 如果主要需求是学习和测试 Ubuntu 下的命令行工具或服务型应用,推荐使用 Docker Docker 更轻量、更高效,适合快速搭建和销毁环境。 启用 WSL 2,Docker Desktop 是一个非常好的选择。 如果需要完整的桌面环境或进行复杂的系统级开…...
C++17中std::chrono::duration和std::chrono::time_point的舍入函数
文章目录 1. std::chrono::duration的舍入函数1.1 floor1.2 ceil1.3 round 2. std::chrono::time_point的舍入函数2.1 示例 3. 舍入函数的应用场景3.1 时间测量3.2 数据记录3.3 时间同步 4. 总结 在C17中, std::chrono库提供了一组强大的时间处理工具,包…...
基于SpringBoot的线上汽车租赁系统的设计与实现(源码+SQL脚本+LW+部署讲解等)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
基于Dancing Links的精确覆盖算法(解决NP难问题)和量子计算机模拟中的Shor算法(涉及数论与量子叠加态模拟)
一、Dancing Links算法实现数独求解(NP难问题) 算法方案 数独可转化为精确覆盖问题,使用Knuth提出的DLX算法实现高效求解。该算法通过双向十字循环链表实现快速回溯,时间复杂度可达O(n^k)(k为常数) #include <iostream> #include <vector> #include <c…...
体育品牌排行榜前十名:MLB·棒球1号位
MLB是一个融合了棒球文化与街头时尚元素的潮流运动品牌。以下是对该品牌的详细介绍: 一、品牌背景 • 全称:MLB全称是Major League Baseball,即美国职业棒球大联盟。不过,作为品牌的MLB并非由美国职业棒球大联盟直接运营&#x…...
Java网络编程封装
系列文章目录 Java知识点 文章目录 系列文章目录👉前言👉一、封装的目标👉二、套接字层封装👉壁纸分享👉总结 👉前言 Java 网络编程封装原理主要围绕着将底层的网络通信细节隐藏起来,提供简洁…...
数字内容体验标杆案例解析
内容概要 在数字化转型浪潮中,数字内容体验正成为企业构建核心竞争力的关键抓手。本文通过拆解金融、零售、文旅等领域的标杆案例,系统分析沉浸式设计与智能交互系统的技术融合路径,揭示头部企业如何通过XR技术、实时数据可视化及场景化内容…...
区块链相关方法-PEST分析
一、定义:一种用于分析企业外部宏观环境的工具。PEST 这四个字母分别代表政治(Political)、经济(Economic)、社会(Social)和技术(Technological)。这种分析方法帮助企业或组织了解宏…...
Dify安装教程:Linux系统本地化安装部署Dify详细教程
1. 本地部署 Dify 应用开发平台 环境:Ubuntu(24.10) docker-ce docker compose 安装 克隆 Dify 源代码至本地环境: git clone https://github.com/langgenius/dify.git 启动 Dify: cd dify/docker cp .env.example...
git使用-克隆远程项目、分支管理
文章目录 克隆远程项目到本地1. 远程找到需要克隆的项目,复制ssh地址2. idea开启git版本控制(如果已经开了,忽略此步骤)3. clone远端项目4. 克隆完成 分支管理1. 新建分支2. 切换分支3. 合并分支4. 储存变化 克隆远程项目到本地 …...
QT 引入Quazip和Zlib源码工程到项目中,无需编译成库,跨平台,压缩进度
前言 最近在做项目时遇到一个需求,需要将升级的文件压缩成zip,再进行传输; 通过网络调研,有许多方式可以实现,例如QT私有模块的ZipReader、QZipWriter;或者第三方库zlib或者libzip或者quazip等࿱…...
SQLMesh 系列教程8- 详解 seed 模型
在数据分析和建模过程中,外部模型(External Models)在 SQLMesh 中扮演着重要角色。外部模型允许用户引用外部数据源或现有数据库表,从而实现灵活的数据整合和分析。本文将介绍外部模型的定义、生成方法(包括使用 CLI 和…...
oracle apex post接口
日常记录 使用到了apex_json方式接收 、、、1 首先,接口通过body传递过来,成功接收到, 数据格式为 JSON_OBJECT_T l_json : JSON_OBJECT_T.parse(:body); 这里我用参数接收到 然后 里面是包含了 "data" 我用 继续接收到这个 l…...
复制所绑定元素文本的vue自定义指令
最近写了一个复制所绑定元素文本的vue自定义指令,给大家分享一下。 import { ElMessage } from element-plus// data-* 属性名 const dataCopyBtnTextAttribute data-copy-btn-text // 复制按钮的class,结合项目实际进行设置 const copyBtnClass icon…...
若依-@Excel新增注解numberFormat
Excel注解中原本的scale会四舍五入小数,导致进度丢失 想要的效果 显示的时候保留两个小数真正的数值是保留之前的数值 还原过程 若以中有一個專門的工具类,用来处理excel的 找到EXCEL导出方法exportExcel()找到writeSheet,写表格的方法找到填充数据的方法…...
内容中台重构智能服务:人工智能技术驱动精准决策
内容概要 现代企业数字化转型进程中,内容中台与人工智能技术的深度融合正在重构智能服务的基础架构。通过整合自然语言处理、知识图谱构建与深度学习算法三大技术模块,该架构实现了从数据采集到决策输出的全链路智能化。在数据层,系统可对接…...
网络安全:DeepSeek已经在自动的挖掘漏洞
大家好,我是AI拉呱,一个专注于人工智领域与网络安全方面的博主,现任资深算法研究员一职,兼职硕士研究生导师;热爱机器学习和深度学习算法应用,深耕大语言模型微调、量化、私域部署。曾获多次获得AI竞赛大奖,拥有多项发明专利和学术论文。对于AI算法有自己独特见解和经验…...
C#从入门到精通(34)—如何防止winform程序被同时打开多次
前言: 大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在开发上位机软件的过程中,评判一个人软件写的好不好,有一…...
Linux系统使用Docker部署Geoserver并做数据挂载进行地图服务的发布和游览
文章目录 1、前提环境2、拉取geoserver镜像3、创建数据挂载目录4、 运行容器5、 测试使用(发布shp数据为服务)5.1、创建工作区5.2、添加数据存储5.3、发布图层5.4、服务游览 1、前提环境 部署环境:Linux,Centos7 ,Doc…...
STM32-温湿度上传OneNET项目
一、项目需求 使用 ESP8266 连接 OneNET 云平台,并通过 MQTT 协议上传 DHT11 获取的温湿度值。 二、项目框图 三、DHT11工作原理 参考于良许嵌入式手把手教你玩转DHT11(原理驱动) | 良许嵌入式 3.1 正常工作验证 # 上电后ÿ…...
HTML 中的 Canvas 样式设置全解
在 HTML5 中,<canvas> 元素提供了一个强大的绘图接口,允许开发者通过 JavaScript 实现各种图形和动画效果。为了充分利用 <canvas> 的功能,理解其样式设置是至关重要的。本文将详细介绍如何在 HTML 中设置 <canvas> 的各种…...
【Java】File 类
目录 File 类File 类构造方法常见成员方法判断与获取创建与删除获取并遍历 File 类 File 对象表示一个路径,可以是文件的路径,也可以是文件夹的路径 这个路径可以是存在的,也允许是不存在的 绝对路径和相对路径的区别: 绝对路径…...
SAP S4HANA Administration (Mark Mergaerts Bert Vanstechelman)
SAP S4HANA Administration (Mark Mergaerts Bert Vanstechelman)...
特征提取:如何从不同模态中获取有效信息?
在多模态学习中,特征提取是一个至关重要的过程。它是将原始数据(如文本、图像、视频和语音等)转化为机器能够理解和处理的特征的核心步骤。不同于传统的单一模态任务,在多模态学习中,如何有效地从每种模态中提取出有意义的信息并进行融合,直接影响到最终模型的性能和准确…...
2025年-G14-Lc88-278.第一个坏版本 -java版
1.题目描述 第一个坏版本 你是一名产品经理,目前领导一个团队开发新产品。不幸的是,你产品的最新版本未通过质量检查。由于每个版本都是基于前一个版本开发的,所以坏版本之后的所有版本也都是坏的。假设你有 n 个版本 [1, 2, …, n]ÿ…...
计算机网络————(一)HTTP讲解
基础内容分类 从TCP/IP协议栈为依托,由上至下、从应用层到基础设施介绍协议。 1.应用层: HTTP/1.1 Websocket HTTP/2.0 2.应用层的安全基础设施 LTS/SSL 3.传输层 TCP 4.网络层及数据链路层 IP层和以太网 HTTP协议 网络页面形成基本 流程:…...
大语言模型架构:从基础到进阶,如何理解和演变
引言 你可能听说过像 ChatGPT 这样的 AI 模型,它们能够理解并生成自然语言文本。这些模型的背后有着复杂的架构和技术,但如果你了解这些架构,就能明白它们是如何工作的。今天,我们将用简单的语言,逐步介绍大语言模型的…...
科普mfc100.dll丢失怎么办?有没有简单的方法修复mfc100.dll文件
当电脑频繁弹窗提示“mfc100.dll丢失”或应用程序突然闪退时,这个看似普通的系统文件已成为影响用户体验的核心痛点。作为微软基础类库(MFC)的核心组件,mfc100.dll直接关联着Visual Studio 2010开发的大量软件运行命脉。从工业设计…...
什么是虚拟内存?它的作用是什么?
虚拟内存概念 虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间)。但是实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在…...