当前位置: 首页 > news >正文

JavaScript基础知识2

求数组的最大值案例

    let arr=[2,6,1,7,400,55,88,100]let max=arr[0]let min=arr[0]for(let i=1;i<arr.length;i++){max<arr[i]?max=arr[i]:maxmin>arr[i]?min=arr[i]:min}console.log(`最大值是:${max}`)console.log(`最小值是:${min}`)

操作数组

修改数组里的元素

    let arr=['pink','red','green']// 修改arr[0]='hotpink'// 给数组所有元素后面加上老师for(let i=0;i<arr.length;i++){arr[i]=arr[i]+'老师'}console.log(arr)

新增数组元素

数组名.push()方法将一个或者多个元素添加到数组的末尾,并返回该数组的新长度

语法(后追加)

arr.push('deeppink')

前追加

arr.unshift(新增的内容),将一个或多个元素追加到数组最前面,并返回数组的长度

    //在数组后追加元素let arr=['pink','hotpink']// // arr.push('deeppink')// // console.log(arr)// // console.log(arr.push('deeppink'))// 返回数组的长度 3// arr.push('deepink','lightpink')//添加多个数组元素// console.log(arr)// 在数组前追加元素arr.unshift('red')console.log(arr)

数组的筛选

 // 需求:将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10的元素筛选出来,放入新数组let arr=[2,0,6,1,77,0,52,0,25,7]let newArr=[]for(let i=0;i<arr.length;i++){if(arr[i]>=10){newArr.push(arr[i])}}document.write(newArr)

数组去0案例

    let arr=[2,0,6,1,77,0,52,0,25,7]let newArr=[]for(let i=0;i<arr.length;i++){if(arr[i]!==0)newArr.push(arr[i])}console.log(newArr)

删除数组中的元素

数组.pop()方法从数组中删除最后一个元素并返回该元素的值,一次只能删除一个

数组.shift()方法从数组中删除第一个元素,并返回该元素的值

数组.splice()方法,删除指定元素

arr.splice(起始位置,删除第几个元素)可删除多个元素

    let arr=['red','green','blue']// arr.pop()// console.log(arr.pop())// 返回删除元素的值// console.log(arr)// arr.shift()//删除第一个元素,同理,返回删除元素的值// splice 删除指定元素// arr.splice(1,1)//删除green,从索引号为1的元素开始删,只删除一个arr.splice(1)//从green开始删除

根据数据生成柱形图

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {padding: 0;margin: 0;}.box {display: flex;justify-content: space-around;width: 500px;height: 300px;border-left:1px solid pink ;border-bottom: 1px solid pink;margin: 100px auto;align-items: flex-end;}.box>div {width: 65px;background-color: pink;display: flex;flex-direction: column;justify-content: space-between;align-items: center;}.box>div span {margin-top: -20px;}.box>div h4 {margin-bottom: -40px;}</style>
</head>
<body><!-- <div class="box"><div style="height: 123px;"><span>123</span><h4>第一季度</h4></div><div style="height: 145px;"><span>145</span><h4>第二季度</h4></div><div style="height: 256px;"><span>256</span><h4>第三季度</h4></div><div style="height: 168px;"><span>168</span><h4>第四季度</h4></div></div> --><script>// 1.四次弹框效果// 声明一个新的数组let arr=[]for(let i=1;i<=4;i++){let num=prompt(`请输入第${i}季度的数据`)//prompt前不用加+号,因为后续会与px拼接arr.push(num)}//打印盒子开头document.write(` <div class="box">`)// 盒子中间for(let i=0;i<arr.length;i++){document.write(`<div style="height: ${arr[i]}px;"><span>${arr[i]}</span><h4>第${i+1}季度</h4></div>`)}//打印盒子结尾document.write(` </div>`)</script>
</body>
</html>

冒泡排序

    let num=[2,5,6,4,3,1,7]for(let i=0;i<num.length-1;i++){for(let j=0;j<num.length-i-1;j++){if(num[j]>num[j+1]){let temp=num[j];num[j]=num[j+1]num[j+1]=temp}}}console.log(num)

数组排序

数组.sort() 方法可以排序

    let arr=[2,4,5,1,3]//升序// arr.sort(function(a,b){//     return a-b// })//降序arr.sort(function(a,b){return b-a})

函数

可实现代码的复用

function,是被设计为执行特定任务的代码块

    function 函数名(){函数体}

函数名命名规范

  • 和变量名基本一致
  • 尽量小驼峰命名法
  • 前缀应该为动词
  • 命名建议:常用动词约定

函数的调用及封装

语法:函数名()

    // 1.求两个数的和// function getSum(){//   let num1=+prompt('请输入第一个数')//   let num2=+prompt('请输入第二个数')//   console.log(num1+num2)// }// getSum()// function getSum(){//   let sum =0//   for(let i=1;i<=100;i++){//     sum+=i//   }//   console.log(sum)// }// getSum()

函数的传参

    function getSum(start,end){//形参,形式上的参数let sum =0for(let i=start;i<=end;i++){sum+=i}console.log(sum)}getSum(1,50)//实参,实际的参数

函数调用时,小括号里面的是实参,实际的参数,函数声明时,小括号里面的是形参,形式上的参数

当有形式参数时,但调用时并未传递实际参数,则默认为形式参数类型为undefined,执行运算操作时,返回值为NaN,所以为了避免这种情况,可以给形参设置默认值,可以默认为0,这样使程序更严谨,只有未传递形参时才会使用默认值,若传递实参,则不会使用默认值

    function getSum(x=0,y=0){documenr.write(x+y)}

 函数封装数组案例

    function getArrSum(arr=[]){let sum=0for(let i=0;i<arr.length;i++){sum+=arr[i]}console.log(sum)}getArrSum([1,2,3,4,5,6])getArrSum([11,22,33])getArrSum()//为了防止什么都不传入而导致计算undefined的长度,形参要表示为数组形式,若没有传参,则直接返回空数组

求n到m的累加和

    //求n到m的累加和function getSum(n,m){let sum=0for(let i=n;i<=m;i++){sum+=i}console.log(sum)}let num1=+prompt('请输入起始值')let num2=+prompt('请输入结束值')getSum(num1,num2)

函数的返回值

  • 具备返回值的函数:prompt,parserInt等等
  • 没有返回值的函数:alert
  • 函数返回值用return返回
  • return不能换行

当函数要返回多个返回值时,直接用中括号包裹(中间用逗号隔开),相当于返回数组

调试时,F10不进函数体,F11进函数体

    //   return x>y?x:y// }// let max=getMax(2,3)// console.log(max)//求任意数组的最大值,并返回function getArrMax(arr=[]){//先准备一个max变量存放数组的第一个值let max=arr[0]let min=arr[0]for(let i=1;i< arr.length;i++){arr[i]>max?max=arr[i]:maxarr[i]<min?min=arr[i]:min }return [max,min]}let arr=getArrMax([2,3,4,5,6,76])console.log(`数组的最大值是${arr[0]}`)console.log(`数组的最小值是${arr[1]}`)

 

细节

  •  函数名相同,后面覆盖前面
  • 如果实参多于形参,从左到右一一对应之后,剩下的传参无效
  • 形参多于实参,剩余的形参直接默认为undefined,若参与运算,结果直接为NaN

作用域

全局作用域:全局有效,整个script标签内部或者一个独立的js文件

局部作用域:作用于函数内的代码环境,跟函数有关系,所以也叫函数作用域

若局部变量没有声明,函数之外也可以使用(不推荐)

    let num=10function fn(){num=10}fn()console.log(num)

变量的访问原则

在能够访问到的情况下,先局部,局部没有再找全局

匿名函数

没有名字的函数,无法直接使用,并且必须先声明,后使用

    let fn=function(x,y){console.log('我是函数表达式')console,log(x+y)}fn(1,2)

具名表达式:函数可以先调用再声明,调用函数可以写到任意位置

立即执行函数

避免全局变量之间的污染,立即执行函数后面必须加分号,写完之后会立刻运行,不需要额外调用

    //立即执行函数(function(){console.log(11)})();//第二个小括号本质上是调用函数(function(x,y){console.log(x+y)})(1,2);//第二种写法(function(x,y){console.log(x+y)}(1,3));

转换时间案例

    let second=prompt('请输入秒数:')function getTime(t){let h=parseInt(t/60/60%24)let m=parseInt(t/60%60)let s=parseInt(t%60)h=h<10?'0'+h:hm=m<10?'0'+m:ms=s<10?'0'+s:sreturn `转换完毕之后是${h}小时${m}分${s}秒`}let str=  getTime(second)document.write(str)

逻辑中断

1.逻辑运算符中的短路

  • 短路:只存在于&&和||中,当满足一定条件时,会让右边的代码不执行
  • &&:若前面已经判断为假,则不执行后面的语句
  • ||:若前面的语句已经判断为真,则不执行后面的语句
  • undefined在逻辑运算符中当假看
    function fn(x=0,y=0){x=x||0y=y||0console.log(x+y)//0}console.log(11&&22)//都是真 返回最后一个真值console.log(11||22)// 输出第一个真值fn()

转换为boolean型

显式转换

1.boolean(内容)

''(空字符串)、0、undefined、null、false、NaN转化为布尔值之后都是false,其余则为true 

    console.log(undefined&&20)//undefined   && 若前一项为假,则直接返回前一项的元素,不返回falseconsole.log(null&&20)//null

隐式转换

    console.log(undefined&&20)//undefined   && 若前一项为假,则直接返回前一项的元素,不返回falseconsole.log(null&&20)//null
  • 有字符串的加法""+1,结果是”1“
  • 减法-(像大多数数学运算一样)只能用于数字,它会使空字符串""转换为0
  • null经过数字转换之后·会变为0
  • undefined经过数字转换之后会变为NaN
  • null==undefined 正确(值相同)
  • null===undefined 错误(数据类型不同)

对象

  • 对象(object):JavaScript里的一种数据类型
  • 可以理解为是一种无序的数据集合,注意数组是有序的数据集合
  • 用来描述某个事务,例如描述一个人
  • 人有姓名年龄性别等信息,还有吃饭睡觉敲代码等功能
  • 如果使用多个变量保存则比较松散,用对象比较统一

对象的使用

1.对象声明语法

    let 对象名={}let 对象名=new Object()let person={}

2.对象由属性和方法组成

属性
  • 信息或叫特征(名词)。比如手机尺寸、颜色、重量等...
  • 数据描述性的信息称为属性,如人的姓名,身高,年龄,性别等,一般是名词性的
  • 属性都是成对出现的,包括属性名和值,他们之间用英文:分隔
  • 多个属性之间使用英文,分隔
  • 属性就是依附在对象上的变量(外面是变量,对象内是属性)
  • 属性名可以使用""或’‘,一般情况下省略,除非名称遇到特殊符号如空格、中横线等
    let obj={'goods-name':'小米10 PLUS'uname:'pink老师',age:18,gender:'女'}//查的另外一种属性console.log(obj['goods-name'])//中括号里要有引号

 

 简单案例

 

    let goods={name:'小米10青春版',num:'10001122122',weight:'0.05kg',address:'中国·大陆'}
  •  声明对象,并添加了若干属性后,可以使用,获得对象中属性对应的值,称之为属性访问
  • 语法:对象名.属性名
  • 简单理解就是获得对象里面的属性值。
属性·查
    let goods={name:'小米10青春版',num:'10001122122',weight:'0.05kg',address:'中国·大陆'}// 使用属性查 对象名.属性名console.log(goods.address)console.log(goods.name)
属性·改
goods.weight='0.06kg'
属性·增
    // 增// 语法:对象名.新属性=新值goods.price='10000'
 属性·删
    // 删// 语法:delete 对象名.属性delete goods.price
方法

功能或叫行为(动词)。比如手机打电话、发短信、玩游戏...

数据行为性的信息称为方法,如跑步,唱歌等,一般是动词性的,其本质是函数

  1. 方法由方法名和函数两部分构成,他们之间使用:分隔
  2. 多个属性之间使用英文,分隔
  3. 方法是依附在对象中的函数
  4. 方法名可以使用""或'',一般情况下省略,除非名称遇到特殊符号如空格.中横线等
    let obj={uname:'刘德华',//方法song:function(x,y){// console.log('冰雨')console.log(x+y)},dance:function(x,y){// console.log('tr')console.log(x-y)}}//方法的调用 对象名.方法名obj.song(1,2)obj.dance(2,3)

遍历对象

    // let arr=['pink','red','blue']// //for in 很少遍历数组,因为得到的数组下标为字符形式// for(let k in arr){//   console.log(k)//打印数组的下标 索引号 但是输出下标为字符串'0'//   console.log(arr[k])// }//推荐用for in 来遍历对象let obj={uname:'小明',age:'18',gender:'男'}for (let k in obj){console.log(k)// 属性名 'uname' 'age'  k默认的属性名已经加上了引号console.log(obj[k])}

遍历数组对象

    let students=[{name:'小明',age:'18',gender:'男',hometown:'河北省'},{name:'小红',age:'18',gender:'女',hometown:'河南省'},{name:'小刚',age:'18',gender:'男',hometown:'山西省'},{name:'小丽',age:'18',gender:'女',hometown:'山东省'}]for(let i=0;i<students.length;i++){for(let j in students[i]){console.log(students[i][j])}}

学生信息表格渲染案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>table {width: 600px;height: 250px;text-align: center;}table,th,tr,td{border: 1px solid #ccc;border-collapse: collapse;cursor: pointer;}table tr:nth-child(1){font-size: 18px;font-weight: 700;background-color:#ccc;}table tr:nth-child(n+2):hover{background-color: #eee;}</style>
</head>
<body><h2>学生信息</h2><p>将数据渲染到页面中...</p><table><caption>学生列表</caption><tr><th>序号</th><th>姓名</th><th>年龄</th><th>性别</th><th>家乡</th></tr><script>//1. 数据准备let students=[{name:'小明',age:'18',gender:'男',hometown:'河北省'},{name:'小红',age:'18',gender:'女',hometown:'河南省'},{name:'小刚',age:'18',gender:'男',hometown:'山西省'},{name:'小丽',age:'18',gender:'女',hometown:'山东省'}]//2. 渲染页面for(let i=0;i<students.length;i++){document.write(`<tr><td>${i+1}</td><td>${students[i].name}</td><td>${students[i].age}</td><td>${students[i].gender}</td><td>${students[i].hometown}</td></tr>`)}</script></table>
</body>
</html>

内置对象

Math

介绍:Math对象是JavaScript提供的一个“数字”对象

作用:提供了一系列做数学运算的方法

Math对象包含的方法有:

  • random:生成0-1之间的随机数(包括0不包括1)
  • ceil:向上取整
  • floor:向下取整
  • max:找最大数
  • min:找最小数
  • pow:幂运算
  • abs:绝对值
  • round:四舍五入
   console.log(Math.PI);console.log(Math.ceil(1.1))//2 天花板向上取整console.log(Math.floor(1.1))//1 向下取整console.log(Math.round(1.1))//1 console.log(Math.round(1.5))//2console.log(Math.round(-1.5))//-1,出现.5选大的console.log(Math.round(-1.51))//-2 //距离谁最近就是谁parseInt('12px')//也是取整函数,只不过功能更强大,可将字符串取整,而floor不行console.log(Math.max(1,2,3,4,5,6))console.log(Math.abs(-1))console.log(Math.pow(4,2))//4的2次方console.log(Math.sqrt(16))//16的平方根

内置对象-生成任意范围内的随机数

Math.random()随机数函数,返回一个0-1之间,并且包括0不包括1的随机小数[0, 1)

生成0-10之间的随机数(整数)

 console.log(Math.floor(Math.random()*(10+1)))//[0,1)*11=[0,10]

生成N-M之间的随机数

    function getRandom(N,M){return Math.floor(Math.random()*(M-N+1))+N}console.log(getRandom(3,6))

随机点名案例

需求:请把['赵云','黄忠','关羽','张飞','马超','刘备','曹操']随机显示一个名字到页面中,但是不允许重复显示

    let arr=['赵云','黄忠','关羽','张飞','马超','刘备','曹操']// 1.得到一个随机数,取值范围是0-6let random=Math.floor(Math.random()*arr.length)document.write(arr[random])//splice(起始位置(下标),删除几个元素)arr.splice(random,1)console.log(arr)

猜数字游戏

需求:程序随机生成1-10之间的一个数字,用户输入一个数字

  1. 如果大于该数字,就提示,数字猜大了,继续猜
  2. 如果小于该数字,就提示,数字猜小了,继续猜
  3. 如果猜对了,就提示猜对了,程序结束
    function Random(){return random=Math.floor(Math.random()*11)}let dom=Random()while(true){let num=+prompt('请输入你猜的数字')if(num>dom){alert('猜大了')}else if(num<dom){alert('猜小了')}else{alert('恭喜你,猜对了')break}}

规定猜测次数

    function Random(){return random=Math.floor(Math.random()*11)}let dom=Random()let i=0for(;i<=3;i++){let num=+prompt('请输入你猜的数字')if(num>dom){alert('猜大了')}else if(num<dom){alert('猜小了')}else{alert('恭喜你,猜对了')break}}if(i===4){alert('次数已经用完')}

生成随机颜色

需求:该函数接受一个布尔型参数,表示颜色的格式是十六进制还是rgb格式。

  • 如果参数传递的是true或者无参数,则输出一个随机十六进制的颜色
  • 如果参数传递的是false,则输出一个随机rgb的颜色
    // 1.自定义一个随机颜色函数function getRandomcolor(flag=true){if(flag){let str='#'let arr=['0','1' ,'2','3','4','5','6','7','8','9','a','b','c','d','e','f']//利用for循环循环六次,累加到str里面for(let i=1;i<=6;i++){let Random=Math.floor(Math.random()*arr.length)str+=arr[Random]}return str}else{let r=Math.floor(Math.random()*256)let g=Math.floor(Math.random()*256)let b=Math.floor(Math.random()*256)return `rgb(${r},${g},${b})`}}console.log(getRandomcolor(false))console.log(getRandomcolor(true))console.log(getRandomcolor())

相关文章:

JavaScript基础知识2

求数组的最大值案例 let arr[2,6,1,7,400,55,88,100]let maxarr[0]let minarr[0]for(let i1;i<arr.length;i){max<arr[i]?maxarr[i]:maxmin>arr[i]?minarr[i]:min}console.log(最大值是&#xff1a;${max})console.log(最小值是&#xff1a;${min}) 操作数组 修改…...

Linux之线程同步

目录 一、问题引入 二、实现线程同步的方案——条件变量 1、常用接口&#xff1a; 2、使用示例 一、问题引入 我们再次看看上次讲到的多线程抢票的代码&#xff1a;这次我们让一个线程抢完票之后不去做任何事。 #include <iostream> #include <unistd.h> #inc…...

03 龙芯平台openstack部署搭建-keystone部署

#!/bin/bash #创建keystone数据库并授权&#xff0c;可通过mysql -ukeystone -ploongson验证授权登录 mysql -uroot -e “set password for rootlocalhost password(‘loongson’);” mysql -uroot -ploongson -e ‘CREATE DATABASE keystone;’ #本地登录 mysql -uroot -ploo…...

定义了服务器的端口号和Servlet的上下文路径

server: port: 1224 servlet: context-path: /applet 这个配置定义了服务器的端口号和Servlet的上下文路径。 下面是配置的解释&#xff1a; server.port: 1224&#xff1a;这表示服务器应该监听在1224端口上。server.servlet.context-path: /applet&#xff1a;这表…...

AI论文速读 | UniST:提示赋能通用模型用于城市时空预测

本文是时空领域的统一模型——UniST&#xff0c;无独有偶&#xff0c;时序有个统一模型新工作——UniTS&#xff0c;感兴趣的读者也可以阅读今天发布的另外一条。 论文标题&#xff1a;UniST: A Prompt-Empowered Universal Model for Urban Spatio-Temporal Prediction 作者&…...

rabbitmq-spring-boot-start配置使用手册

rabbitmq-spring-boot-start配置使用手册 文章目录 1.yaml配置如下2.引入pom依赖如下2.1 引入项目resources下libs中的jar包依赖如下2.2引入maven私服依赖如下 3.启动类配置如下4.项目中测试发送消息如下5.项目中消费消息代码示例6.mq管理后台交换机队列创建及路由绑定关系如下…...

操作系统知识-操作系统作用+进程管理-嵌入式系统设计师备考笔记

0、前言 本专栏为个人备考软考嵌入式系统设计师的复习笔记&#xff0c;未经本人许可&#xff0c;请勿转载&#xff0c;如发现本笔记内容的错误还望各位不吝赐教&#xff08;笔记内容可能有误怕产生错误引导&#xff09;。 本章的主要内容见下图&#xff1a; 1、操作系统的作用…...

Go语言中的锁与管道的运用

目录 1.前言 2.锁解决方案 3.管道解决方案 4.总结 1.前言 在写H5小游戏的时候&#xff0c;由于需要对多个WebSocket连接进行增、删、查的管理和对已经建立连接的WebSocket通过服务端进行游戏数据交换的需求。于是定义了一个全局的map集合进行连接的管理&#xff0c;让所有…...

前端 - 基础 表单标签 -- 表单元素( input - type属性) 文本框和密码框

表单元素 &#xff1a; 在表单域中可以定义各种表单元素&#xff0c;这些表单元素就是允许用户在表单中输入或选择 的内容控件。 表单元素的外观也各不一样&#xff0c;有小圆圈&#xff0c;有正方形&#xff0c;也有方框&#xff0c;乱七八糟的&#xff0c;各种各样&#xf…...

关于MySQL模糊搜索不区分大小写

在我们日常使用ORM框架进行模糊查询时&#xff0c;会发现&#xff0c;搜索的结果是不区分关键字的英文大小写的&#xff0c;那这是为什么呢&#xff1f; 原因是MySQL的like本就不区分大小写&#xff1b;如果在建表的时候&#xff0c;没有设置好字段区分大小 //包含j和J的都会被…...

论文阅读——MoCo

Momentum Contrast for Unsupervised Visual Representation Learning 动量在数学上理解为加权移动平均&#xff1a; yt-1是上一时刻输出&#xff0c;xt是当前时刻输入&#xff0c;m是动量&#xff0c;不想让当前时刻输出只依赖于当前时刻的输入&#xff0c;m很大时&#xff0…...

ARM 寄存器学习:(一)arm多种模式下得寄存器

一.ARM7种状态以及每种状态的寄存器&#xff1a; ARM 处理器共有 7 种不同的处理器模式&#xff0c;在每一种处理器模式中可见的寄存器包括 15 个通用寄存器( R0~R14)、一个或两个(User和Sys不是异常模式&#xff0c;没有spsr寄存器)状态寄存器&#xff08;cpsr和spsr&…...

【nfs报错】rpc mount export: RPC: Unable to receive; errno = No route to host

NFS错误 问题现象解决方法 写在前面 这两天搭建几台服务器&#xff0c;需要使用nfs服务&#xff0c;于是六台选其一做服务端&#xff0c;其余做客户端&#xff0c;搭建过程写在centos7离线搭建NFS共享文件&#xff0c;但是访问共享时出现报错&#xff1a;rpc mount export: RPC…...

备战蓝桥杯---牛客寒假训练营2VP

题挺好的&#xff0c;收获了许多 1.暴力枚举&#xff08;许多巧妙地处理细节方法&#xff09; n是1--9,于是我们可以直接暴力&#xff0c;对于1注意特判开头0但N&#xff01;1&#xff0c;对于情报4&#xff0c;我们可以把a,b,c,d的所有取值枚举一遍&#xff0c;那么如何判断有…...

QCustomPlot-绘制X轴为日期的折线图

主要代码如下&#xff1a; void Widget::InitQLineXDateAddData() {customPlot new QCustomPlot(this);// 创建日期时间类型的刻度生成器QSharedPointer<QCPAxisTickerDateTime> dateTimeTicker(new QCPAxisTickerDateTime);dateTimeTicker->setDateTimeFormat(&quo…...

腾讯春招后端一面(算法篇)

前言&#xff1a; 哈喽大家好&#xff0c;前段时间在小红书和牛客上发了面试的经验贴&#xff0c;很多同学留言问算法的具体解法&#xff0c;今天就详细写个帖子回复大家。 因为csdn是写的比较详细&#xff0c;所以更新比较慢&#xff0c;大家见谅~~ 就题目而言&#xff0c;…...

Filebeat rpm方式安装及配置

一、使用服务器root用户、filebeat8.11.1版本,rpm安装方式进行安装 curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.11.1-x86_64.rpm sudo rpm -vi filebeat-8.11.1-x86_64.rpm 二、配置核心的采集文件、使用inputs热更方式、配置filebeat本身…...

深入挖掘C语言之——枚举

目录 1. 枚举的定义 2. 枚举常量的赋值 3. 枚举的使用示例 4. 注意事项 在C语言中&#xff0c;枚举&#xff08;Enum&#xff09;是一种用户定义的数据类型&#xff0c;用于定义一组具名的整型常量。枚举常常用于提高代码的可读性和可维护性&#xff0c;使程序更易于理解。…...

【源码阅读】EVMⅢ

参考[link](https://blog.csdn.net/weixin_43563956/article/details/127725385 大致流程如下&#xff1a; 编写合约 > 生成abi > 解析abi得出指令集 > 指令通过opcode来映射成操作码集 > 生成一个operation 以太坊虚拟机的工作流程&#xff1a; 由solidity语言编…...

.Net Core 中间件验签

文章目录 为什么是用中间件而不是筛选器&#xff1f;代码实现技术要点context.Request.EnableBuffering()指针问题 小结 为什么是用中间件而不是筛选器&#xff1f; 为什么要用中间件验签&#xff0c;而不是筛选器去验签? 1、根据上图我们可以看到&#xff0c;中间件在筛选器之…...

Elasticsearch:从 Java High Level Rest Client 切换到新的 Java API Client

作者&#xff1a;David Pilato 我经常在讨论中看到与 Java API 客户端使用相关的问题。 为此&#xff0c;我在 2019 年启动了一个 GitHub 存储库&#xff0c;以提供一些实际有效的代码示例并回答社区提出的问题。 从那时起&#xff0c;高级 Rest 客户端 (High Level Rest Clie…...

七:分布式

一、Nginx nginx安装 【1】安装pcre依赖 1.下载压缩包&#xff1a;wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz 2.解压压缩包&#xff1a;tar -xvf pcre-8.37.tar.gz 3.安装gcc&#xff1a;yum install gcc 4.安装gcc&#xff1a;yum ins…...

1-postgresql数据库高可用脚本详解

问题&#xff1a; pgrep -f postgres > /dev/null && echo 0 || pkill keepalived 这是什么意思 建议换成 pgrep -f postmaster > /dev/null && echo 0 || pkill keepalived 回答 这条命令是一个复合命令&#xff0c;包含条件执行和重定向的元素。让我们…...

【亲测】Onlyfans年龄认证怎么办?Onlyfans需要年龄验证?

1. 引言 什么是OnlyFans&#xff1a;OnlyFans是一种内容订阅服务&#xff0c;成立于2016年&#xff0c;允许内容创作者从用户那里获得资金&#xff0c;用户需要支付订阅费用才能查看他们的内容。它在多个领域受到欢迎&#xff0c;包括音乐、健身、摄影&#xff0c;以及成人内容…...

ASP.NET Core新特性

1. ASP.NET Core2.1 ASP.NET Core 2.1于2018年5月30日发布。是ASP.NET Core框架的一个重要版本&#xff0c;带来了许多新功能和改进。以下是ASP.NET Core 2.1中一些主要的特性&#xff1a; SignalR&#xff1a;引入了 SignalR&#xff0c;这是一个实时通信库&#xff0c;使得构…...

26-Java访问者模式 ( Visitor Pattern )

Java访问者模式 摘要实现范例 访问者模式&#xff08;Visitor Pattern&#xff09;使用了一个访问者类&#xff0c;它改变了元素类的执行算法&#xff0c;通过这种方式&#xff0c;元素的执行算法可以随着访问者改变而改变访问者模式中&#xff0c;元素对象已接受访问者对象&a…...

电子科技大学链时代工作室招新题C语言部分---题号G

1. 题目 问题的第一段也是非常逆天&#xff0c;说实话&#xff0c;你编不出问题背景可以不编。 这道题的大概意思就是&#xff0c; Pia要去坐飞机&#xff0c;那么行李就有限重。这时Pia想到自己带了个硬盘&#xff0c;众所周知&#xff0c;硬盘上存储的数据就是0和1的二进制序…...

体育运动直播中的智能运动跟踪和动作识别系统 - 视频分析如何协助流媒体做出实时决策

AI-Powered Streaming Vision: Transforming Real-Time Decisions with Video Analytics 原著&#xff1a;弗朗西斯科冈萨雷斯&#xff5c;斯特朗&#xff08;STRONG&#xff09;公司首席ML科学家 翻译&#xff1a;数字化营销工兵 实时视频分析通过即时处理实时视频数据&…...

Avalon总线学习

Avalon总线学习 avalon总线可以分为&#xff1a; Avalon clock interface Avalon reset interface Avalon Memory mapped interface Avalon iterrupt interface Avalon streaming interface Avalon tri-state conduit interface Avalon conduit interface 1、Avalon c…...

Sentinel(熔断规则)

慢调用比例 慢调用比例( SLOM_REQUEST_RATTo ):选择以慢调用比例作为阈值&#xff0c;需要设置允许的慢调用RT(即最大的响应时间)&#xff0c;请求的响应时间大于该值则统计为慢调用。当单位统计时长(statIntervalMs&#xff09;内请求数目大于设置的最小请求数目&#xff0c;…...