Day2 JS基础
2.1 运算符
赋值运算符
=
+=
一元运算符
++
--
<script>let h=20let k=h++ + h++console.log(h) //22console.log(k) //42let i=1console.log(i++ + ++i +i) //7 // 递增运算符:++var a=8a++console.log(a) //9 var num=10var b=num++console.log(b) //10</script>比较运算符
大于号>
小于号<
大于等于号>=
小于等于号<=
== 先把两边数据转换为同一类型,在比较左右两边值是否相等
=== 左右两边是否类型和值都相等(开发中判断是否相等,强烈推荐使用===)
!== 左右两边是否不全等
<script>console.log(3 > 5) //falseconsole.log(3 >= 3) //true/* 双等号,只判断值 比较运算符有隐式转换 把'2'转换为2 */console.log(2 == 2) //true/* 全等号,判断值和数据类型都一样才行 */console.log(2 === '2') //falseconsole.log(NaN === NaN) //false NaN不等于任何人,包括他自己console.log(2 !== '2') //trueconsole.log(2 != '2') //false console.log('a' < 'b') //trueconsole.log('ab' < 'ac') //true</script>逻辑运算符
&& 一假则假
|| 一真则真
! 真变假,假变真(通常给布尔值取反)
<script>const num = +prompt('请输入一个整数:')/* if(num%4===0 && num%100!==0){alert('true')}else{alert('false')} */alert(num % 4 === 0 && num % 100 !== 0)</script>逻辑中断
<script>let age=18console.log(false && age++) //age++不执行,一假则假,中断console.log(age) //18 let num=20console.log(true || num++) //num++不执行,一真则真,中断console.log(num) //20 console.log(11 && 22) //都是真,则返回最后一个值console.log(33 || 44) //都是真,则返回第一个真值</script>
运算符优先级
小括号 ()
一元运算符 ++ -- !
算术运算符 * / % + -
关系运算符 > >= < <=
相等运算符 == != === !==
逻辑运算符 && ||
赋值运算符 =
逗号运算符 ,
<script>let a = 3 > 5 && 2 < 7 && 3 == 4console.log(a) //falselet b = 3 <= 4 || 3 > 1 || 3 != 2console.log(b) //truelet c = 2 === "2"console.log(c) //falselet d = !c || b && aconsole.log(d) //true
</script>
2.2 语句
2.2.1 顺序结构
2.2.2 分支结构
if分支语句
// 条件成立执行代码,否则什么也不做 if (条件表达式) {// 条件成立执行的代码语句 } // 条件成立 执行 if 里面代码,否则执行else 里面的代码 if (条件表达式) {// [如果] 条件成立执行的代码 } else {// [否则] 执行的代码 } // 适合于检查多重条件 if (条件表达式1) {语句1; } else if (条件表达式2) {语句2; } else if (条件表达式3) {语句3;.... } else {// 上述条件都不成立执行此处代码 }三元运算符
表达式1 ? 表达式2 : 表达式3;switch语句(一般用于特定值的判断,break跳出整个循环)switch( 表达式 ){ case value1:// 表达式 等于 value1 时要执行的代码break;case value2:// 表达式 等于 value2 时要执行的代码break;default:// 表达式 不等于任何一个 value 时要执行的代码 }
2.2.3 循环结构
for循环
语法:
for(初始化变量;条件表达式;操作表达式){
//循环体
}
初始化变量在for循环内只执行一次
条件表达式用来判断每次循环是否能够执行
// 1.for (let i = 1; i <= 100; i++) {console.log('亲爱的,我错了!')}// 2.let num = +prompt('请输入你想道歉的次数:')for (let i = 1; i <= num; i++) {console.log('都是我的错')}// 3.let sum = 0for (let i = 1; i <= 100; i++) {if (i % 3 === 0) {sum += i}}console.log(sum)// 4.let sum1 = 0for (let i = 1; i <= 200; i++) {sum1 += i}console.log(sum1)// 5.let m = 0, n = 0for (let i = 1; i <= 100; i++) {if (i % 2 == 0) {m++} else {n++}}console.log('偶数为:' + m, '奇数为:' + n);// 6.let sum2 = 0let num2 = +prompt('请输入录入成绩的人数:')for (let i = 1; i <= num2; i++) {let sort = +prompt(`请输入第${i}个人的成绩:`)sum2 += sort}console.log('总成绩:' + sum2);console.log('平均成绩:' + sum2 / num2);双重for循环
里层和外层初始化变量不能一样
for(外层初始化变量;外层条件表达式;外层操作表达式){
for(里层初始化变量;里层条件表达式;里层操作表达式){
}
while(条件表达式){ //循环体}
使用 while 循环时一定要注意,它必须要有退出条件,否则会成为死循环
do{ //循环体}
while(条件表达式)
先再执行循环体,再判断,do…while循环语句至少会执行一次循环体代码
continue
推出本次循环,进行下次循环
break
退出整个循环体,不再进行后面的循环
2.3 综合案例
// 1.let money = 0while (true) {let num = +prompt(`请输入您要的操作: \n 1.存钱 \n 2.取钱 \n 3.显示余额 \n 4.退出`)if (num == 4) {break}switch (num) {case 1:money += +prompt('请输入您要存入的金额:')alert('您的余额为:' + money)break;case 2:money -= +prompt('请输入您要取出的金额:')alert('您的余额为:' + money)break;case 3:alert('您的余额为:' + money)break;default:alert('您输入错误,请重新输入!')}}
// 2./* let sum=0for(let i=1;i<=100;i++){if(i%10!==3){sum+=i}}console.log(sum) */// 3./* let sum=0for(let i=1;i<=100;i++){if(i%3==0&&i%7==0){sum+=i}}console.log(sum) */// 4./* let k = 0for (let i = 1; i < 1000; i++) {if (i % 3 == 0 && i % 7 == 0) {k++// console.log(k+' '+i);if (k == 35) {console.log(i)}}}*/
相关文章:
Day2 JS基础
2.1 运算符 赋值运算符 一元运算符 -- <script>let h20let kh hconsole.log(h) //22console.log(k) //42let i1console.log(i i i) //7 // 递增运算符:var a8aconsole.log(a) //9 var num10var bnumconsole.log(b) //10</script> 比较运…...
mybatis----有用配置知识归纳(狂神说学习总结)
1.mybatis介绍 MyBatis 是一款优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类映射成数据库中的记录 官网 Mybatis中文官方文档 : https…...
【TCP/IP】组播
一、组播介绍 组播(Multicast)是网络技术中数据传输的一种方法,它允许将数据包同时发送给一组指定的目标,而不是单个的目标(单播 Unicast)或所有可能的目标(广播 Broadcast)。组播传…...
java 内存模型
程序计数器 线程私有主要字节码解释器通过读取程序计数器来选取下一条需要执行的指令,比如分支,循环,跳转和异常处理如果执行的是java 方法,那么程序计数器记录的时候虚拟机字节码指令的地址,如果执行的是native 方法…...
Linux——缓冲区封装系统文件操作
📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、FILE二、封装系统接口实现文件操作1、text.c2、mystdio.c3、mystdio.h 一、FILE 因为IO相…...
深度学习系列59:文字识别
1. 简单文本: 使用google加的tesseract,效果不错。 首先安装tesseract,在mac直接brew install即可。 python调用代码: import pytesseract from PIL import Image img Image.open(1.png) pytesseract.image_to_string(img, lan…...
学习JAVA的第七天(基础)
目录 static 静态变量 静态方法 工具类: static的注意事项 继承 继承的好处 继承的特点 方法的重写 书写格式 override重写注解 方法重写的要求 this关键字 super关键字 static static表示静态,是Java中的一个修饰符,可以修饰成…...
GoLand 相关
goland 下载依赖 go mod tidy:保持依赖整洁 go mod tidy 命令的作用是清理未使用的依赖,并更新 go.mod 以及 go.sum 文件。 go mod tidy 和 go mod vendor 两个命令是维护项目依赖不可或缺的工具。go mod tidy 确保了项目的 go.mod 文件精简且准确&…...
顶顶通呼叫中心中间件-如何使处于机器人话术中的通话手动转接到坐席分机上
文章目录 前言联系我们实现步骤freeswitch命令转接api接口转接 前言 本文讲解呼叫中心中间件如何手动转接通话。 场景:利用自动外呼进入机器人,在通话过程中,转接到坐席分机上。 联系我们 有意向了解呼叫中心中间件的用户,可以点…...
RabbitMQ开启MQTT协议支持
1)RabbitMQ启用MQTT插件 rootmq:/# rabbitmq-plugins enable rabbitmq_mqtt Enabling plugins on node rabbitmq: rabbitmq_mqtt The following plugins have been configured:rabbitmq_managementrabbitmq_management_agentrabbitmq_mqttrabbitmq_web_dispatch Ap…...
Orange3数据预处理(列选择组件)数据角色及类型描述
在Orange3的文件组件中,datetime、categorical、numeric以及text代表不同种类的数据类型,具体如下: datetime:代表日期和时间类型的数据。通常用于时间序列分析、生存分析和其他需要考虑时间因素的机器学习任务中。例如࿰…...
c sharp资料
资料 c#菜鸟教程 Xml XmlNode 类 XPath或运算 SelectNodes的使用 基础 string.Format 复合格式设置标准数字格式字符串...
《低功耗方法学》翻译——第十四章:电源切换网络设计
第十四章:电源切换网络设计 功率门控是在待机或休眠模式下降低漏电功率最有效的方法,但这种方法存在诸如休眠晶体管占用的硅面积、永久和虚拟电源网络的布线资源以及复杂的功率门控设计和实现过程等开销,影响设计风险和进度。 除了开销外&a…...
如何使用Axure RP制作web页面并实现无公网ip远程访问——“cpolar内网穿透”
文章目录 前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4.2 启动website隧道4.3 获取公网URL地址4.4. 公网远程访问内网web站点4.5 配置固定二级子域名公网访问内网web站点4.5.1创建一条固定…...
vue2实现无感刷新token
🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📘 引言: Ǵ…...
每日学习-2月18日
知识点:二叉树 中序遍历算法: void InOrderTraverse(BiTree T) { if(TNULL) return; InOrderTraverse(T->lchild); printf("%c",T->data); InOrderTraverse(T->rchild); } 算法过程: (1)调用InOrderTraverse(T)&#…...
AI 使人机交互发生根本性转变 AI芯片主战场,变了
语言将主导AI交互界面,同时AI应用正逐步适应人类 AI正创造人为中心和基于代理的未来。 这是 OpenAI 首位投资人 Vinod Khosla 关于 AI 交互与革命的最新洞察。Khosla 对常见术语“AI 硬件”和“小工具”表示怀疑,他主张从一个新的视角来看待这些设备&a…...
容器库(12)-std::unordered_multiset
unordered_multiset是以key为元素无序的关联容器,搜索、移除和插入操作是平均常数的时间复杂度。unordered_multiset在内部没有按任何顺序排列,而是放在桶当中的,放进哪个桶是通过计算key的hash值来决定的。和unordered_set不同的是ÿ…...
Mysql学习之事务日志undolog深入剖析
Undo log redo log 是事务持久性的保证,undo log是事务原子性的保证。在事务中更新数据的前置操作其实是要先写入一个undo log。 如何理解undo 日志? 事务需要保证原子性,也就是事务中的操作要么全部完成,要么什么也不做。但有时…...
springboot整合druid及可能遇到的问题
第一步,导入druid的maven依赖 在这里,我们选择导入druid-spring-boot-starter,使用配置文件的形式进行配置(不需要再编写配置类) <dependency><groupId>com.alibaba</groupId><artifactId>dr…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...
