【javascript】值,类型,变量,函数,noi103题目,if语句,调试

news2025/1/16 3:47:59

❤️ Author: 老九
☕️ 个人博客:老九的CSDN博客
🙏 个人名言:不可控之事 乐观面对
😍 系列专栏:

文章目录

  • 基本类型
    • Number
    • String
    • boolean
    • 例子
  • 变量
    • 求二元一次方程
  • 函数
  • 1.3题目
  • if
    • 例子
  • 1.4题目
  • 调试

下面我们会随着Eloquent JavaScript这本书开始编程之路

基本类型

  • number,string,boolean,null,undefined,symbol,bigint
  • function,array,object

Number

  • 使用这个数据类型,会创建数字对应的二进制状态在内存中,在js中任何一个数字都占用64个比特,8个字节,也就是说是2的64次方,但是第一个比特是正负,然后后面几个比特是记录小数点,所以准确能得出的整数大概是9后面15个0,但是对浮点数的运算是不精确的。
  • 0b开头是2进制,0x开头是16进制,0o是八进制
  • typeof运算符,返回的是类型。
  • 输出的话用console.log()

String

  • 用双引号也可以,用单引号也可以 ,如果发现了\这个符号就是转义,反引号`在里面可以使用明文回车。
  • 两个字符串拼接就用“+”

boolean

  • 最终得出两个结果,console.log(3 > 2);,字符串也可以进行比较。大写字母小于小写字母。
  • 字符串和数字进行比较,是把字符串变成数字之后再进行比较;
  • 比较的时候,任何一边有布尔类型都是把布尔类型转成数字
  • NaN和自己都不相同,除了NaN,其他的和自己都是相同的。
  • 自动类型转换,含有NaN的运算,值一定是NaN,NaN就是无意义的值,但NaN = = false的值为false。‘5’ == 5 这个结果是真。null = =undefined,这两个值只有和自己还有互相 = =的时候才是true。
  • 只有‘’,NaN,0这三个值转成布尔类型都是假。
  • 还有===这个是精确判断,用来防止自动类型转换。

例子

<script>
x = 2022
console.log( x ) // 输出x
console.log( x * 2 ) // 输出x的两倍
console.log( x ** 2 ) // 输出x的平方
console.log( x * x * x ) // 输出x的三次方
console.log( x ** 5 ) // 输出x的五次平方
console.log( x>50 && x<100 ) // 输出x是否在50到100以内,是输出true,不是输出false
console.log( x % 2 == 1 ) // 输出x是否为奇数,是输出true,不是输出false
console.log( x % 2 == 0 ) // 输出x是否为偶数,是输出true,不是输出false
console.log( x % 10  ) // 输出x的个位数
console.log( (x - x % 10) /10 % 10 ) // 输出x的十位数
console.log( (x - x % 100) /100 % 10) // 输出x的百位数
console.log( x % 100 ) // 输出x百位数以下的部分,对于2021,即输出21,对于2035,即输出35
console.log( Math.abs(x) ) // 输出x的绝对值
console.log( x>200 && x % 3 === 0 && x % 7 != 0 ) // 输出x是否大于200且为3的倍数但不是7的倍数。
console.log( (x - x % 100) / 100 + 1 ) // 输出x做为年份时,所在的世纪,对于2022即输出21,对于1864即输出19
console.log( x % 4 == 0  ) // 输出x做为年份时,当年是否会举办奥运会
console.log( x % 4 === 2 ) // 输出x做为年份时,当年是否会举办世界杯
//与运算优先级高于或运算
console.log( x % 400 === 0 || (x % 4 === 0 && x % 100 != 0) ) // 输出x做为年份时,是否为闰年,是输出true,不是输出false,闰年的定义请自行查询
</script>

变量

  • 程序通过变量记 录内部状态,关键字是var,变量声明语句 var x = 5*6;,可以赋值,也可以不赋值。$可以当作变量。

求二元一次方程

<script>
  var a = 2
  var b = 9
  var c = 1
  //Math.abs(-5) 这个是求绝对值
  //Math.pow(2,1.5)这个求1.5的平方
  var delta = b * b - 4 * a * c
  var sqrt_delte = Math.sqrt(delta)
  var x1 = (-b + sqrt_delte) / (-2 * a)
  var x2 = (-b - sqrt_delte) / (-2 * a)

  console.log(x1)
  console.log(x2)
</script>

函数

  • alert就是一个函数,alert可以让代码停止。console.log(1,2,3,4,5)可以接受很多个参数,但是alert(1,2),只能接受一个参数,只输出1
  • 这个点就是在console这个方法中取了一个log的属性
  • confirm(‘are you sure to delete’),这个函数是有返回结果的,如果把这个函数的值给一个变量,如果点击确定就返回true,取消就返回false;
  • prompt(‘what is your age’,’18‘),这个是带一个文本框的弹窗,在文本框里输入的东西就作为返回值,后面一个参数是程序在文本框里自动添加的,prompt返回的是字符串,如果想将字符串转成数字,Number(prompt())
  • var x= 3.1415; x.toFixed(2),这个意思是保留小数点有效位数2位,转后成了一个字符串
  • parseInt,这个函数可以将一个字符串取出来数字中的整数,然后把字符串里的字母和小数都排除,可以用作一个小数的向下取整;这个还可以通过进制转换,parseInt(‘11010’,2),这个就是将11010以2进制来理解,转成10进制输出。
  • Math.floor(1.5) = 1这个就是向下取整
  • Math.ceil(1.001) = 2这个是向上取整

1.3题目

<script type="xxx" id="ch0103/01">
  var a = Number(prompt())
  var b = Number(prompt())
  var c = a + b
  alert(c)
  console.log(c)
</script>

<script type="xxx" id="ch0103/02">
  var a = Number(prompt())
  var b = Number(prompt())
  var c = Number(prompt())

  var result = (a + b) * c
  console.log(result)
</script>

<script type="xxx" id="ch0103/03">
  var a = Number(prompt())
  var b = Number(prompt())
  var c = Number(prompt())
  var r = (a + b) / c
  var result = Math.floor(r)
  console.log(result)
</script>

<script type="xxx" id="ch0103/04">
  var a = Number(prompt())
  var b = Number(prompt())

  var division = Math.floor(a / b)
  var remainder = a % b

  console.log(division)
  console.log(remainder)
</script>

<script type="xxx" id="ch0103/05">
  var a = Number(prompt())
  var b = Number(prompt())

  var result = a / b
  console.log(result.toFixed(9))
</script>

<script type="xxx" id="ch0103/06">
  var a = Number(prompt())
  var b = Number(prompt())

  var r = b / a * 100
  console.log(r.toFixed(3) + '%')
</script>

<script type="xxx" id="ch0103/07">
  var x = Number(prompt())
  var a = Number(prompt())
  var b = Number(prompt())
  var c = Number(prompt())
  var d = Number(prompt())

  var result = a * x ** 3 + b * x ** 2 + c * x + d
  console.log(result.toFixed(7))
</script>

<script type="xxx" id="ch0103/08">
  var f = Number(prompt())
  var C = 5 * (F - 32) / 9
  console.log(C.toFixed(5))
</script>

<script type="xxx" id="ch0103/09">
  var r = Number(prompt())
  console.log((r * 2).toFixed(5),(2 * 3.14159 * r)
  .toFixed(5) , (3.14159 * r * r).toFixed(5))
</script>

<script type="xxx" id="ch0103/10">
  var r1 = Number(prompt())
  var r2 = Number(prompt())
  var R = 1 / (1 / r1 + 1 / r2)
  console.log(R.toFixed(2))
</script>

<script type="xxx" id="ch0103/11">
  var a = Number(prompt())
  var b = Number(prompt())

  var R  = a % b
  console.log(R.toFixed(4))
</script>

<script type="xxx" id="ch0103/12">
  var r = Number(prompt())
  var V = 4 / 3 * Math.PI * r ** 3
  console.log(V.toFixed(2))
</script>

<script type="xxx" id="ch0103/13">
  var n = Number(prompt())
  var ge = n % 10
  var shi = (n - n % 10) / 10 % 10
  var bai = (n - ge - (shi * 10)) / 100 % 10
  var r = '' + ge + shi + bai
  console.log(r)
</script>

<script type="xxx" id="ch0103/14">
  var h = Number(prompt())
  var r = Number(prompt())
  var L = h * Math.PI * r * r / 1000
  var count = 20 / L
  console.log(Math.ceil(count))
</script>

<script type="xxx" id="ch0103/15">
  var n = Number(prompt())
  var x = Number(prompt())
  var y = Number(prompt())

  var eatten = Math.ceil(y / x)
  var remain = n - eatten
  console.log(remain)
</script>

<script type="xxx" id="ch0103/16">
  var x1 = Number(prompt())
  var y1 = Number(prompt())
  var x2 = Number(prompt())
  var y2 = Number(prompt())

  var l = Math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)
  console.log(l.toFixed(3))
</script>

<script type="xxx" id="ch0103/17">
  var x1 = Number(prompt())
  var y1 = Number(prompt())
  var x2 = Number(prompt())
  var y2 = Number(prompt())
  var x3 = Number(prompt())
  var y3 = Number(prompt())

  var a = Math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)
  var b = Math.sqrt((x1 - x3) ** 2 + (y1 - y3) ** 2)
  var c = Math.sqrt((x2 - x3) ** 2 + (y2 - y3) ** 2)

  var p = (a + b + c) / 2
  var s = Math.sqrt(p * (p - a) * (p - b) * (p - c))
  console.log(s.toFixed(2))
</script>

<script id="ch0103/18">
  var a1 = Number(prompt())
  var a2 = Number(prompt())
  var n = Number(prompt())
  var delta = a2 - a1
  var an = a1 + (n - 1) * delta
  console.log(an)
</script>

<script id="ch0103/18">
  var a1 = Number(prompt())
  var a2 = Number(prompt())
  var n = Number(prompt())
  var delta = a2 - a1
  var an = a1 + (n - 1) * delta
  console.log(an)
</script>

<script id="ch0103/19">
  var a = Number(prompt())
  var b = Number(prompt())
  console.log(a * b)
</script>

<script id="ch0103/20">
  var n = Number(promp())
  console.log(Math.pow(2,n))
</script>

if

  • isNaN:这个判断是否不是一个数值类型的值
  • Number.isNaN:这个判断是否是NaN这个值

例子

<script>
  var a = Number(prompt('请输入a'))
  var b = Number(prompt('请输入b'))
  var c = Number(prompt('请输入c'))

  var delta = b ** 2 - 4 * a * c
  var sqrt_delta = Math.sqrt(delta)

  var x1 = (-b + sqrt_delta) / (2 * a)
  var x2 = (-b + sqrt_delta) / (2 * a)

  if (delta > 0) {
    console.log('x1 = ' + x1)
    console.log('x2 = ' + x2)
  } else if (delta == 0) {
    console.log('x1 = x2 = ' + x1)
  } else {
    console.log('无解')
  }
</script>

1.4题目

<script type="xxx">
  var n = Number(prompt())
  if (n > 0) {
    console.log('positive')
  } else if (n == 0) {
    console.log('zero')
  } else {
    console.log('negative')
  }
</script>
<script type="xxx">
  var n = Numbrer(prompt())
  if (n < 0) {
    console.log(-n)
  } else {
    console.log(n)
  }
</script>

<script type="xxx">
  var n = Number(prompt)
  if (n % 2 == 0) {
    console.log("even")
  } else {
    console.log('odd')
  }
</script>

<script type="xxx" id="ch0104/04">
  var char = prompt()
  //这个charcodeAt是获取ASCLL编码的方式
  var code = char.charCodeAt(0)

  if (code % 2 == 0) {
    console.log('No')
  } else {
    console.log('yes')
  }
</script>

<script type="xxx" id="ch0104/05">
  var x = Number(prompt())
  var y = Number(prompt())

  if (x > y) {
    console.log('>')
  } else if (x == y) {
    console.log('=')
  } else {
    console.log('<')
  }
</script>

<script type="xxx" id="ch0104/06">
  var n = Number(prompt())
  if (n >= 10 && n < 100) {
    console.log(1)
  } else {
    console.log(0)
  }
</script>

</script>

<script type="xxx" id="ch0104/07">
  var lucky = Number(prompt())
  var encourage = Number(prompt())

  if (lucky >= 10 || encourage >= 20) {
    console.log(1)
  } else {
    console.log(0)
  }
</script>

<script type="xxx" id="ch0104/08">
  var n = Number(prompt())

  if (n % 3 == 0 && n % 5 == 0) {
    console.log('yes')
  } else {
    console.log('no')
  }
</script>

<script type="xxx" id="ch0104/09">
  var n = Number(prompt())
  var over = false
  if (n % 3 == 0) {
    over = true
    console.log(3)
  }

  if (n % 5 == 0) {
    over = true
    console.log(5)
  }

  if (n % 7 == 0) {
    over = true
    console.log(7)
  }

  if (!over) {
    console.log('n')
  }
</script>

<script type="xxx" id="ch0104/10">
  var s1 = Number(prompt())
  var s2 = Number(prompt())
  var count = 0
  if(s1 < 60){
    count = count + 1
  }
  if(s2 < 60){
    count = count + 1
  }
  if(count == 2){
    console.log(1)
  }else{
    console.log(0)
  }
</script>

<script type="xxx" id="ch0104/11">
  var n = Number(prompt())
  if(n == 1 || n == 3 || n == 5){
    console.log('yes')
  }
</script>

<script type="xxx" id="ch0104/12">
  var distance = Number(prompt())
  var byWalk = distance / 1.2
  var byBicycle = distance / 3 + 50

  if(byWalk < byBicycle){
    console.log('walk')
  }else if(byWalk > byBicycle){
    console.log('Bike')
  }else{
    console.log('ALL')
  }
</script>

<script type="xxx" id="ch0104/13">
  var x = Number(prompt())
  var y
  if(x < 5){
    y = -x + 2.5
  }else if(x < 10){
    y = 2 - 1.5 * (x-3) * (x - 3)
  }else{
    y = x / 2 - 1.5
  }

  console.log(y.toFixed(2))
</script>

<script type="xxx" id="ch0104/14">
  var weight = Number(prompt())
  var emergency = prompt()
  var price = 8
  if(weight > 1000){
    price = price + Math.ceil((weight - 1000) / 500) * 4
  }
  if(emergency == 'y'){
    price = price + 5
  }
  console.log(price)
</script>

<script type="xxx" id="ch0104/15">
  var a = Number(prompt())
  var b = Number(prompt())
  var c = Number(prompt())
  
  var max = 0
  if(a > max){
    max = a
  }
  if(b > max){
    max = b
  }
  if(c > max){
    max = c
  }

  console.log(max)
</script>

<script type="xxx" id="ch0104/16">
  var a = Number(prompt())
  var b = Number(prompt())
  var c = Number(prompt())

  if(a + b > c && a + c > b && b + c > a){
    console.log('yes')
  }else{
    console.log('no')
  }
</script>

<script type="xxx" id="ch0104/17">
  var year = Number(prompt())
  if(year % 400 == 0 || year % 4 == 0 && year % 100 != 0){
    console.log('y')
  }else{
    console.log('x')
  }
</script>

<script xtype="xxx" id="ch0104/18">
  var x = Number(prompt())
  var y = Number(prompt())

  if(x > -1 && x < 1 && y > -1 && y < 1){
    console.log('yes')
  }else{
    console.log('no')
  }
</script>

<script type="xxx" id="ch0104/19">
  var a = Number(prompt())
  var b = Number(prompt())
  var op = prompt()

  if(op == '+'){
    console.log(a + b)
  }else if(op == '-'){
    console.log(a - b)
  }else if(op == '*'){
    console.log(a * b)
  }else if(op == '/'){
    if(b == 0){
      console.log('divided by zero!')
    }else{
      console.log(a + b)
    }
  }else{
    console.log('invalid operator')
  }

</script>

<script type="xxx" id="ch0104/20">
  var a = Number(prompt())
  var b = Number(prompt())
  var c = Number(prompt())

  var delta = b * b - 4 * a * c

  if(delta >= 0 ){
    var x1 = (-b - Math.sqrt(delta)) / (2 * a)
    var x2 = (-b - Math.sqrt(delta)) / (2 * a)

    if(delta > 0 ){
      var result = 'x1=' + x1.toFixed(5) + ';x2=' + x2.toFixed(5)
    }else{
      var result = 'x1=x2='+x1.toFixed(5)
    }
    console.log(result)
   }else{
    var delta = -delta
    var sDelta = Math.sqrt(delta)

    var x1real = -b / (2 * a)
    var x1imag = sDelta / (2 * a)
    var x2real = -b / (2 * a)
    var x2imag = -sDelta / (2 * a)

    var x1 = x1real.toFixed(5) + (x1imag>0 ? '+': '')+ x1imag.toFixed(5) + 'i'
    var x2 = x1real.toFixed(5) + (x1imag>0 ? '+': '')+ x1imag.toFixed(5) + 'i'

    console.log(x1,x2)
   }
</script>

调试

  • 在代码中加debugger
    在这里插入图片描述

————————————————————————
♥♥♥码字不易,大家的支持就是我坚持下去的动力♥♥♥
版权声 明:本文为CSDN博主「亚太地区百大最帅面孔第101名」的原创文章

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

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

相关文章

SpringMVC:SpringMVC五种类型参数传递(4)

请求参数1. 环境准备2. 参数传递2.1 GET请求2.1.1 GET发送一个参数2.1.2 GET发送多个参数2.1.3 GET请求中文乱码2.2 POST请求2.2.1 POST发送一个参数2.2.2 POST发送多个参数2.2.3 POST请求中文乱码问题3. 五种类型参数传递3.1 普通参数3.2 POJO类型参数3.3 嵌套POJO类型参数3.4…

HashMap(二)扩容

想要了解HashMap的扩容机制你要有这两个问题 1、什么时候才需要扩容 2、HashMap的扩容是什么 1、什么时候才需要扩容 当HashMap中的元素个数超过数组大小&#xff08;数组长度&#xff09;* loadFactor(负载因子)时&#xff0c;就会进行数组扩容&#xff0c;loadFactor的默认值…

Pytest框架运行常用参数解析

-s&#xff1a;表示输出调试信息&#xff0c;用于显示测试函数中print()打印的信息。我们在用例中加上一句 print(driver.title)&#xff0c;我们再运行一下我们的用例看看&#xff0c;调试信息输出-v&#xff1a;未加前只打印模块名&#xff0c;加v后--verbose打印类名、模块名…

Java中的八大包装类(Wrapper)

目录 一、八大包装类 1、八大包装类的体系图&#xff1a; 二、装箱和拆箱 三、intValue()和valueOf()方法 1、intValue() 2、valueOf() 四、包装类型和String类型的相互转换 五、包装类的常用方法&#xff08;以Integer和Character为例&#xff09; 一、八大包装类 包装…

Scala环境搭建

目录1&#xff09;安装步骤2&#xff09;测试3&#xff09;IDEA安装Scala 插件1&#xff09;安装步骤 1.首先确保 JDK1.8 安装成功 2.下载对应的 Scala 安装文件 scala-2.x.zip 3.解压 scala-2.12.11.zip&#xff0c;我这里解压到 F:\software 4.配置 Scala 的环境变量 …

使用Python和GDAL处理遥感影像数据超详细教程

提示&#xff1a;文章末尾有强化学习代码资源 : ) 前言 在本教程中&#xff0c;我们将学习使用 Python 和地理空间数据抽象库 GDAL 自动处理栅格数据的基本技术。 栅格文件通常用于存储地形模型和遥感数据及其衍生产品&#xff0c;例如植被指数和其他环境数据集。 栅格文件往往…

windows 连接蓝牙耳机失败 解决方法

windows 连接蓝牙耳机失败 解决方法 如果我们在windows7或windows10电脑中连接蓝牙却出现了连接失败的状况&#xff0c;这要怎么办呢&#xff0c;可能是我们没有打开电脑的蓝牙功能&#xff0c;这时我们点击打开蓝牙网络的属性&#xff0c;勾选Bluetooth设置的选项即可&#x…

安卓某通讯协议环境算法浅谈

所有的tlv组包都在 oicq.wlogin_sdk.tlv_type加密算法可以hook oicq.wlogin_sdk.tools Tlv144 是由5个tlv组成 然后用TGTkey进行 TEA加密 tlv_109 AndroidIDtlv_52d 系统内核信息tlv_124 平台网络信息tlv_128 手机设备信息tlv_16e 手机品牌TLV544 是设备id&#xff0…

MySQL-复合查询

文章目录复合查询基础查询多表查询自连接子查询单行子查询多行子查询多列子查询合并查询uion会自动去重union all就是不去重union all就是不去重复合查询 基础查询 查询工资高于500或者岗位为MANAGER的员工&#xff0c;同时名字首字母是J select * from emp where (sal>500…

ADI Blackfin DSP处理器-BF533的开发详解54:CVBS输出(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 CVBS OUT 视频输出 硬件实现原理 CVBS_OUT 子卡板连接在 ADSP-EDU-BF53x 开发板的扩展端口 PORT3 和 PORT4 上&#xff0c;板卡插入时&#xff0…

pytest + yaml 框架 -14.钉钉机器人通知测试结果

前言 当用例执行完成后&#xff0c;希望能给报告反馈&#xff0c;常见的报告反馈有&#xff1a;邮箱/钉钉群/飞书/企业微信 等。 pip 安装插件 pip install pytest-yaml-yoyo钉钉机器人通知测试结果功能在v1.1.1版本实现 钉钉机器人设置 钉钉机器人的设置请参考官方API文档…

实验2 VLAN的划分及VLAN间通信的配置

实验2 VLAN的划分及VLAN间通信的配置一、实验目的二、实验要求三、实验步骤&#xff0c;数据记录及处理四、实验总结一、实验目的 掌握VLAN的划分及VLAN间通信的配置方法 二、实验要求 交换机在没有划分虚拟网络时&#xff0c;都默认属于VLAN1&#xff0c;可以相互通信。通过…

【链表面试题】——剑指 Offer : 复杂链表(带随机指针)的复制

文章目录前言1.题目介绍2. 题目分析3. 思路讲解思路1思路2步骤1步骤2步骤34. 分析图及源码展示前言 这篇文章&#xff0c;我们一起来解决一道与链表相关的经典面试题&#xff1a;复杂链表&#xff08;带随机指针&#xff09;的复制。 1.题目介绍 我们先来一起了解一下这道题&…

Java的继承到底是怎么回事?看这篇让你明明白白

一. 引言 在学习面向对象后&#xff0c;我们就可以使用类来描述对象共有的特征(属性)和行为举止(方法)&#xff0c;如果我们用类来描述猫、狗和企鹅&#xff0c;可以进行如下编码&#xff1a; public class Cat {private String name;//名字private int age;//年龄private St…

操作系统,计算机网络,数据库刷题笔记11

操作系统&#xff0c;计算机网络&#xff0c;数据库刷题笔记11 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xf…

kubelet源码分析 syncLoopIteration(一) configCh

kubelet源码分析 syncLoopIteration syncLoopIteration里有四个chan管道。分别是configCh、plegCh、syncCh、housekeepingCh。这篇主要聊一下这四个管道的由来。 一、configCh configCh是通过list&watch的API SERVER获得的数据。然后在本地进行比对&#xff0c;推送到c…

Qt-Web混合开发-QtWebChannel实现Qt与Web通信交互-进阶功能(6)

Qt-Web混合开发-QtWebChannel实现Qt与Web通信交互-进阶功能&#x1f96c; 文章目录Qt-Web混合开发-QtWebChannel实现Qt与Web通信交互-进阶功能&#x1f96c;1、概述&#x1f33d;2、实现效果&#x1f346;3、实现功能&#x1f352;4、关键代码&#x1f95d;5、源代码&#x1f9…

Android基础学习(二十二)—— View的事件分发(1)

一、View的层级关系 二、View的事件分发机制 1、MotionEvent ——点击事件 点击事件用MotionEvent来表示 ACTION_DOWN&#xff1a;手指刚接触屏幕 ACTION_MOVE&#xff1a;手指在屏幕上移动 ACTION_UP&#xff1a;手指从屏幕上松开的一瞬间 点击事件的事件分发&#xff0…

OM6621系列国产M4F内核低功耗BLE5.1大内存SoC蓝牙芯片

目录OM6621系列简介OM6621P系列芯片特性应用领域OM6621系列简介 随着5G与物联网时代的到来&#xff0c;智慧城市、电动出行、智能家居、可穿戴设备等应用高速发展&#xff0c;低功耗蓝牙技术在近几年智能化浪潮中的地位也尤为重要。OM6621系列的开发即是为解决国内低功耗蓝牙应…

Linux安装docker 保姆级教程

一、docker介绍 Docker 是 2014 年最为火爆的技术之一&#xff0c;几乎所有的程序员都听说过它。Docker 是一种“轻量级”容器技术&#xff0c;它几乎动摇了传统虚拟化技术的地位&#xff0c;现在国内外已经有越来越多的公司开始逐步使用 Docker 来替换现有的虚拟化平台了。 二…