【H2O2|全栈】JS入门知识(二)

目录

JS

前言

准备工作

运算符

算数运算符

比较运算符

自增、自减运算符

逻辑运算符

运算符的优先级

分支语句

if-else语句

switch语句

三元表达式

结束语


JS

前言

本系列博客主要分享JavaScript的基础语法知识,本期为第二期,包含一些简单的js语法,以及一道js的面试题。

叠甲:非专业,仅参考。

准备工作

软件:【参考版本】Visual Studio Code

插件(扩展包):Open in browser, Live Preview, Live Server

浏览器版本:Chrome

系统版本: Win10/11/其他非Windows版本

*我的电脑是Win10的版本,仅供参考*

运算符

算数运算符

JS提供了一些常用的运算符号,与算数中的运算符一一对应,所以又叫算数运算符

常见的算数运算符如下:

符号含义
+加法
-减法
*乘法
/除法(除以)
%取余
&与运算(布尔值转化为0/1)
|或运算(布尔值转化为0/1)

比较运算符

JS中,我们常常会遇到一些大小或者属性不一致的值需要比较,这个时候就需要用到我们的比较运算符

常见的比较运算符如下: 

符号含义
==  !=比较两者的值是否一致
===  !==比较两者的类型、值是否都一致
>=  >  <=  <比较两者的值之间的大小关系

自增、自减运算符

如果我们想让一个数字的值在原来的基础上加一,常规的方式是:

a = a + 1

上面的代码实质上实现了运算赋值两个功能。 

想要同时实现这两个功能,我们还可以用自增的方式,自增的方式分为两种:

  • 前自增        ++a
  • 后自增        a++

对于前自增,实际上的操作为先进行+1运算,再参与后续运算,即先赋值,再计算。 

而后自增则是先计算,再赋值。

案例

比如,我现在有下面这个这段代码:

var a = 10, b = 16
let c = a++ + ++b + b++
alert(c)

那么,输出的值应当是多少呢?

分析题目,在赋值式中,第一步是a++,所以参与运算的是10,而a在这里变成了11。

第二步是++b,所以这里是b先变成了17,然后让17参与运算,所以这里的计算变为10 + 17。

第三步是b++,参与运算的是17,然后b变成了18,所以这里的计算变为10 + 17 + 17。

因此,输出的值应当是44。

逻辑运算符

在进行真值判定运算的时候,我们经常需要涉及到逻辑运算符的使用。

常见的逻辑运算符有下面三种:

符号含义
&&(短路)与
||(短路)或

在多个使用  &&  相连的判定语句中,只要有一个条件的真值为false,则整个式子的值就是false。

而在多个使用  ||  相连的判定语句中,只要有一个条件的真值为true,则整个式子的值就是true。

如果式子中同时出现  &&  运算和  ||  运算,则优先计算  &&  的结果。

在使用 !的式子中,如果式子为true,则取反,即整体输出为false。

案例

比如,我们需要判断一个数字是否在1和10之间,那么就需要用到下面的式子:

var a = 6
var b = a > 1 && a < 10
alert(b)

那么,输出的值是多少呢?

显然,a同时满足大于1和小于10两个条件,因此输出的值应当是true。

运算符的优先级

在使用运算符计算时,显然存在计算的先后顺序,即存在运算符之间的优先级。 

优先级自上而下排列为:

优先级运算符注释
1()小括号
2++  -- 自增运算符
3*  /  +  -算数运算符
4>  >=  <  <=大小比较运算符
5==  !=  ===  !==值、类型/值比较运算符
6&&逻辑与
7||逻辑或
8!逻辑非
9=赋值
10,逗号

分支语句

if-else语句

该语句的中文释义为如果……就……否则,用于判断是否满足某种条件,并执行相应条件下的代码。

该语句的标准代码格式如下:

if (判断条件1) {执行语句1
} else if (判断条件n) {执行语句n
} else {不满足上述条件时才执行的代码
}

如果只需要判定一个条件是否满足,则不需要用到 else if 语句。

如果需要判定多个条件执行对应的代码,则可以使用多组else if语句。

案例

比如,我们需要判断一个学生的成绩等级,分为90及以上的、60到89分的和60分以下的三个等级,使用if语句来实现:

var sc = +prompt("请输入分数")if (sc >= 90) {alert("优秀")
}  else if (sc >= 60 && sc < 90) {alert("及格")
} else {alert("不及格")
}

switch语句

如果我们的判断条件为一个一个单独的数值(枚举类型),而不是一段一段的区间,则可以使用switch语句来操作。

该语句的标准代码如下:

switch(参数值) {case 参数值1:执行语句1breakcase 参数值n:执行语句nbreakdefault:所有条件都不符合时执行的语句
}

如果参数值较少,则使用if语句会更加方便。 

break的作用是结束当前的执行语句,否则程序会一直执行,直到下一个break语句或者default。

案例

输入年份和月份,输出这个月有多少天。 

分析:首先,我们需要获取月份,输出这个月对应的天数;

但是,2月是比较特殊的,所以获取的年份信息需要在月份为2月时提供闰年的判定。

JS代码如下:

var year = +prompt("请输入年份");
var month = +prompt("请输入月份")
switch (month) {case 1,3,5,7,8,10,12:alert(year + "年的" + month + "月有31天");break;case 4,6,9,11:alert(year + "年的" + month + "月有30天");break;case 2:if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {alert(year + "年的" + month + "月有29天");} else {alert(year + "年的" + month + "月有28天");}break;default:alert("输入错误");break;
}

三元表达式

如果只有两种情况,除了使用if语句之外,还有一种更加简洁的方式——三元运算符表达式

标准的三元运算符表达式如下:

判断条件 ? 条件为真执行的语句 : 条件为假执行的语句

案例

比如,如果想要输出两个数的最大值,可以使用下面的代码:

var a = 3, b = 5
let c = a > b ? a : b

结束语

本期的内容到这里就结束了,主要是js的运算符、分支语句和表达式等内容。在后续的本系列博客中,我会继续更新js的基础语法知识,并适当地配合上一些案例。

在全栈领域,博主也只不过是一个普通的萌新而已。本系列的博客主要是记录一下自己学习的一些经历,然后把自己领悟到的一些东西总结一下,分享给大家。

文章全篇的操作过程都是笔者亲自操作完成的,一些定义性的文字加入了笔者自己的很多理解在里面,所以仅供参考。如果有说的不对的地方,还请谅解。

==期待与你在下一期博客中再次相遇==

——还在漏气的【H2O2】

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

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

相关文章

Linux基础命令系列一小白必掌握

前言 为了有一个大概的复习框架所以先给出总的思维导图&#xff0c;如图&#xff1a; 目录 1.Linux的目录结构&#xff1f;Linux命令与命令行是什么&#xff1f;Linux命令基础格式&#xff1f; 2.ls命令 3.cd命令 4.mkdir命令 5.touch命令 6.cat命令 7.cp命令 8.mv命令…

大数据开发电脑千元配置清单

大数据开发电脑配置清单 电脑型号HUANANZHI 台式电脑操作系统Windows 11 专业版 64位&#xff08;Version 23H2 / DirectX 12&#xff09;处理器英特尔 Xeon(至强) E5-2673 v3 2.40GHz主板HUANANZHI X99-P4T&#xff08;P55 芯片组&#xff09;显卡NVIDIA GeForce GT 610 ( 2…

深入剖析递归算法:原理、特点、应用与优化策略

在上一篇文章&#x1f449;【剖析十大经典二叉树题目】中&#xff0c;运用到了大量的递归算法&#xff0c;故本文将解析递归算法。 目录 &#x1f4af;引言 &#x1f4af;递归算法的定义与原理 ⭐定义 ⭐原理 &#x1f4af;递归算法的特点 ⭐简洁性 ⭐可读性 ⭐通用性 …

linux下编译鸿蒙版boost库

我在上一篇文章中介绍了curl和openssl的编译方式&#xff08;linux下编译鸿蒙版curl、openssl-CSDN博客&#xff09;&#xff0c;这篇再介绍一下boost库的编译。 一.环境准备 1.鸿蒙NDK 下载安装方式可以参考上篇文章&#xff0c;完毕后NDK的路径为&#xff1a;/home/ubuntu…

Java学习Day47:戏耍黑手道人(项目记录)

1.项目背景 2.技术选择 3.环境搭建 1.创建空项目 创建health_parent父文件用来控制依赖&#xff0c;类型为quickStart 打包方式为&#xff0c;pom&#xff1a;用在父级工程或聚合工程中&#xff0c;用来做jar包的版本控制&#xff0c;必须指明这个聚合工程的打包方式为pom。…

信息抽取数据集处理——RAMS

引言 RAMS数据集&#xff08;RAMS&#xff1a;Richly Annotated Multilingual Schema-guided Event Structure&#xff09;由约翰斯霍普金斯大学于2020年发布&#xff0c;是一个以新闻为基础的事件抽取数据集。它标注了9,124个事件&#xff0c;涵盖了139种不同的事件类型和65种…

服务端技术架构演进之路

服务端技术架构演进之路 目录 服务端技术架构演进之路 0.架构中常见概念及理解 1.单机架构 2.应用数据分离架构 3.应用服务器集群架构 4.读写分离/主从分离架构 5.冷热分离架构 6.垂直分库架构 7.微服务架构 8.容器编排架构 本文以一个 " 电子商务 " 应…

Android 未来可能支持 Linux 应用,Linux 终端可能登陆 Android 平台

近日&#xff0c;根据 android authority 的消息&#xff0c;Google 正在开发适用于 Android 的 Linux 终端应用&#xff0c;而终端应用可以通过开发人员选项启用&#xff0c;并将 Debian 安装在虚拟机中。 在几周前&#xff0c;Google 的工程师开始为 Android 开发新的 Termi…

应急实战(10):Linux后门帐号

目录 1. Prepare 1.1 部署安全设备 2. Detect 2.1 设备产生告警 3. Contain 4. Eradicate 4.1 删除后门帐号 4.2 加固弱口令帐号 5. Recover 5.1 恢复帐号登录 6. Follow-Up 6.1 修改登录端口 6.2 开启命令记录 1. Prepare 1.1 部署安全设备 部署主机安全产品&#xff1a;牧云H…

自定义多级联动选择器指南(uni-app)

多端支持&#xff1a;可以运行在H5、APP、微信小程序还是支付宝小程序&#xff0c;都可以轻松使用改组件。自定义配置&#xff1a;您可以根据需要配置选择器的级数&#xff0c;使其适应不同的数据结构和用例。无限级联&#xff1a;此组件支持无限级联选择&#xff0c;使您能够创…

类和对象(完结)

文章目录 一对构造函数的补充1初始化链表2必须在初始化链表定义的情况3对于在类中成员变量初始化的总结4总结二类型转换1格式2规则三static成员1规则四友元1定义2 两种例子五匿名对象1格式2特殊情况 一对构造函数的补充 1初始化链表 结构&#xff1a;类名&#xff08;参数&…

数字化转型:解决项目管理困境的新路径

在当今这个飞速发展的数字化时代&#xff0c;企业如同在汹涌波涛中航行的船只&#xff0c;承受着前所未有的变革压力。而作为企业运作核心环节之一的项目管理&#xff0c;同样面临着巨大的挑战。 传统项目管理模式中的种种问题&#xff0c;犹如顽固的礁石&#xff0c;阻碍着项目…

Shiro认证 -- (Authentication)

Apache Shiro是一个功能强大的Java安全框架&#xff0c;提供了身份验证&#xff08;Authentication&#xff09;、授权&#xff08;Authorization&#xff09;、加密&#xff08;Cryptography&#xff09;、会话管理&#xff08;Session Management&#xff09;、与Web集成、缓…

Linux执行source /etc/profile命令报错:权限不够问(已解决)

1.问题 明明以root账号登录Linux系统&#xff0c;在终端执行命令source /etc/profile时 显示权限不够 如下图&#xff1a; 2.问题原因 可能在编辑 /etc/profile 这个文件时不小心把开头的 井号 ‘#’ 给删除了 如图&#xff1a; 这里一定要有# 3.解决办法 进入/etc/pro…

扫雷(C 语言)

目录 一、游戏设计分析二、各个步骤的代码实现1. 游戏菜单界面的实现2. 游戏初始化3. 开始扫雷 三、完整代码四、总结 一、游戏设计分析 本次设计的扫雷游戏是展示一个 9 * 9 的棋盘&#xff0c;然后输入坐标进行判断&#xff0c;若是雷&#xff0c;则游戏结束&#xff0c;否则…

字节内部整理的软件测试面试题(含文档)

常见的面试题汇总 1、你做了几年的测试、自动化测试&#xff0c;说一下 selenium 的原理是什么&#xff1f; 我做了五年的测试&#xff0c;1年的自动化测试&#xff1b; selenium 它是用 http 协议来连接 webdriver &#xff0c;客户端可以使用 Java 或者 Python 各种编程语言…

【网络安全】未加密的F5 BIG-IP Cookie存在严重漏洞将被攻击者利用

文章目录 未加密的F5 BIG-IP Cookie存在严重漏洞将被攻击者利用F5 会话 Cookie推荐阅读 未加密的F5 BIG-IP Cookie存在严重漏洞将被攻击者利用 网络安全和基础设施安全局发布最新警告称&#xff0c;已观察到威胁行为者滥用未加密的持久性F5 BIG-IP Cookie来识别并针对目标网络…

电能质量的危害主要是哪些?我们该如何应对电能质量故障所带来的损失?

电能质量治理在现代配电系统中的必要性日益凸显。随着可再生能源和智能电网技术的广泛应用&#xff0c;电力系统面临着频率波动、谐波污染和电压不稳定等问题。这些问题不仅影响了电力的可靠性和安全性&#xff0c;还可能导致设备损坏和能效降低。因此&#xff0c;实施电能质量…

Pagehelper获取total错误

前言 在使用若依框架的pagehelper时&#xff0c;给分页表设置数据的时候前端只收到了分页的那一页的数据&#xff0c;总记录数不符合要求 我想要的效果如下&#xff0c;可以实现分页&#xff0c;和显示总记录数 但是实际情况为 但是我的数据库有11条记录&#xff0c;他这里明…

QCY开放式耳机值得买吗?南卡、QCY、韶音开放式耳机最全测评!

​开放式耳机最近还挺火的&#xff0c;因为相对于传统的入耳式耳机来说&#xff0c;它佩戴起来更舒适&#xff0c;也更卫生&#xff0c;更加适配运动场景&#xff0c;现在不少的健身或者运动博主都选择了开放式耳机&#xff0c;那么作为一个同样喜欢跑步的数码博主&#xff0c;…