JavaScript基础2(运算符、语句)
一、运算符
1.算数运算符
<script>
let num1=10, num2=3;
// 加法
console.log(num1 + num2);
// 减法
console.log(num1 - num2);
// 乘法
console.log(num1 * num2);
// 除法
console.log(num1 / num2);
// 求余(取模)
console.log(num1 % num2);
</script>
法则:从左往右,先加减后乘除,有括号先算括号内容。
练习:求圆的面积
<script>
let r = +prompt('请输入圆的半径');
console.log('圆的面积是:' + Math.PI * r * r);
</script>
π在js写法为Math.PI
2.赋值运算符
赋值运算符:对变量进行赋值的运算符
已经学过的赋值运算符:= 将等号右边的值赋予给左边, 要求左边必须是一个变量; 其他赋值运算符:+=;-=; *=; /=; %=
<script>
let num=10;
/* num+=5; //15
num-=5; //5
num*=2; //20
num/=2; //5 */
num%=3; //1
console.log(num)
</script>
3.一元运算符
一元运算符:例: 正负号
自增: 符号:++ 作用:让变量的值 +1
自减: 符号:-- 作用:让变量的值 -1
前置自增:先自加再使用(记忆口诀:++在前 先加)
<script>
let i=1;
console.log(++i + 2); //结果为4
//注意:这里i是2
//i先自加1等于2之后,再跟2相加
</script>
后置自增:先使用再自加(记忆口诀:++在后 后加)
<script>
// 后置自增
let i=1;
console.log(i++ + 2); //结果为3
// 注意:一开始i是1
// i一开始是1,跟2相加后,在自加1等于2
</script>
4.比较运算符
1.>: 左边是否大于右边
2.< : 左边是否小于右边
3.= : 左边是否大于或等于右边
4.<=: 左边是否小于或等于右边
5.==: 左右两边是否相等,将两边的数据进行转换为数值
6.===: 左右两边是否类型和值都相等
7.!==: 左右两边是否不全等
比较结果为boolean类型,即只会得到true或false
比较运算符的细节
1.字符串比较,是比较的字符对应的ASCII码
-
从左往右依次比较
-
如果第一位一样再比较第二位,以此类推
-
比较的少,了解即可
2.NaN不等于任何值,包括它本身
3.尽量不要比较小数,因为小数有精度问题
4.不同类型之间比较会发生隐式转换
- 最终把数据隐式转换转成number类型再比较
- 所以开发中,如果进行准确的比较我们更喜欢 === 或者 !==
5.逻辑运算符
| 符号 | 名称 | 日常读法 | 特点 | 口诀 |
|---|---|---|---|---|
| && | 逻辑与 | 并且 | 符号两边都为true结果才为true | 一假则假 |
| || | 逻辑或 | 或者 | 符号两边有一个true就为true | 一真则真 |
| ! | 逻辑非 | 取反 | true变false | |
| false变true | 真变假,假变真 |
逻辑运算符里的短路
短路:只存在于 && 和 || 中,当满足一定条件会让右边代码不执行
| 符号 | 短路条件 |
|---|---|
| && | 左边为false就短路 |
| || | 左边为true就短路 |
原因:通过左边能得到整个式子的结果,因此没必要再判断右边
运算结果:无论 && 还是 || ,运算结果都是最后被执行的表达式值,一般用在变量赋值
练习:
<script>
let num = +prompt('请输入数字');
console.log(num % 4 === 0 && num % 100 !== 0);
</script>
6.运算符优先级
练习:
二、语句
1.表达式和语句
表达式:表达式是一组代码的集合,JavaScript解释器会将其计算出一个结果
语句:js 整句或命令,js 语句是以分号结束(可以省略)
比如: if语句 for 循环语句
2.分支语句
A.程序三大流程控制语句
B.if分支语句
1.if单分支语句
<script>
let num= +prompt('请输入您的分数');
if(num>700){
alert('恭喜你被录取,请交两万')
}
</script>
- 括号内的条件为true时,进入大括号里执行代码
- 小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型
2.if双分支语句
<script>
let score= +prompt('请输入您的分数');
if(score>700){
alert('恭喜你被录取,请交两万')
}else{
alert('含泪读麻省理工')
}
</script>
3.if多分支语句
<script>
let day= +prompt('今天星期几');
if (day===1){
alert('吃烧腊');
}
else if(day===2){
alert('吃煲仔饭');
}
else if(day===3){
alert('吃汤面');
}
else if(day===4){
alert('吃烤全羊');
}
else if (day===5){
alert('吃海鲜');
}
else {
alert('吃软饭');
}
</script>
C.三元运算符
一般用来取值
练习1判断数大小:输入两个数,控制台输出最大的数
<script>
let num1= +prompt('第一个数'), num2= +prompt('第二个数');
num1 > num2? console.log(num1):console.log(num2);
</script>
</body>
练习2数字补0案例:用户输入1个数,如果数字小于10,则前面进行补0, 比如 09 03 等
<script>
let num= +prompt('输入一个数');
num = num < 10 ? '0' + num : num;
console.log(num);
</script>
练习3简易计算器:用户输入2个数字,然后输入 + - * / 任何一个,可以计算结果
<script>
let num1= +prompt('请输入第一个数');
let num2= +prompt('请输入第二个数');
let symbol= prompt('请输入符号:+-*/其中一个');
if(symbol=== '+'){
console.log(num1 + num2);
}
else if (symbol==='-'){
console.log(num1 - num2);
}
else if (symbol==='*'){
console.log(num1 * num2);
}
else if (symbol==='/'){
if(num2===0){
alert('被除数不能为0');
}
else {
console.log(num1 / num2);
}
}
else {
alert('请规范输入')
}
</script>