目录
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:
执行语句1
break
case 参数值n:
执行语句n
break
default:
所有条件都不符合时执行的语句
}
如果参数值较少,则使用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】