第3章:JavaScript运算符
第3章:JavaScript运算符
本章目标
- 掌握赋值运算符
- 掌握算术运算符
- 掌握比较运算符
- 掌握逻辑运算符
- 掌握复合运算符
课程回顾
- 什么是变量?
- 变量的使用步骤?
- 声明变量用什么关键字?
- 变量名命名规则是什么?
- JavaScript中的数据类型有那些?
讲解内容
1. 赋值运算符
概念:向变量赋值,将右边的值赋值给左边的变量
语法:
var 变量名=值;
或
变量名=值;
例如:
1
2
3var name="张三";
var age=20;
score=90;
2. 算术运算符
概念:算数运算符用于对数字执行算数运算,又称:数学运算符
例如:
1
2
3
4
5
6
7
8var num1=10;
var num2=5;
var jia=num1+num2;//15
var jian=num1-num2;//5
var cheng=num1*num2;//50
var chu=num1/num2;//2
var yu=num1%num2;//0,取余数注意:
- 被除数不能变0,上例的num2=0;结果则为:Infinity,代表无穷的意思
++、–运算符
++运算符:
概念:递增运算符,每次加1
1
2
3var num=10;
num++;//相当于:num=num+1;
console.log(num);//结果为11,在num=10的基础上加1注意事项:
同时使用变量和递增运算符时,根据++的位置计算结果是不一样的。
++变量名:++在变量名前面
1
2var num=10;
console.log(++num);//结果为11,先计算+1,再控制台输出结果变量名++:++在变量名后面
1
2
3var num=10;
console.log(num++);//结果为10,先控制台输出结果,再计算+1
console.log(num);//结果为11
–运算符:
概念:递减运算符,每次减1
1
2
3var num=10;
num--;//相当于:num=num-1;
console.log(num);//结果为9,在num=10的基础上减1注意事项:
同时使用变量和递增运算符时,根据++的位置计算结果是不一样的。
–变量名:–在变量名前面
1
2var num=10;
console.log(--num);//结果为9,先计算-1,再控制台输出结果变量名–:–在变量名后面
1
2
3var num=10;
console.log(num--);//结果为10,先控制台输出结果,再计算-1
console.log(num);//结果为9
3. 复合赋值运算符
概念:将算术运算符和赋值运算符组合
例如:
var num+=10;
var num+=10;
相当于:
var num=num+10;
常用的复合赋值运算符:
- 例子如下图:
4. 比较运算符
概念:比较运算符在逻辑语句中使用,以测定变量或值是否相等,返回结果肯定是Boolean类型
例子如下:
详细讲解
- ==比较运算符,比较值是否相等,不考虑数据类型,案例如下:
1
2
3
4var num=10;
console.log(num==10);//true
console.log(num=="10");//true,num为number类型,“10”为字符串类型,但是不考虑类型直接比较内容
console.log(num=="11");//false- ===比较运算符,绝对等于,也就是说值和数据类型都要相同
1
2
3
4
5
6<script>
var num=10;
console.log(num==10);//true
console.log(num==="10");//false,类型不匹配
console.log(num=="11");//false
</script>?三元运算符:基于某些条件对变量进行赋值的条件运算符
语法:
variablename=(condition)?value1:value2
var 变量名=比较表达式?值1:值2;
解释:
比较表达式如果返回结果为true,则值1赋值给变量,否则值2赋值给变量
例如:
如果变量 age 中的值小于 18,则向变量 voteable 赋值 “年龄太小”,否则赋值 “年龄已达到”。
var voteable=(age<18)?”年龄太小”:”年龄已达到”;
5. 逻辑运算符
概念:逻辑运算符用于判定变量或值之间的逻辑。也是将多个比较运算结果组合成新的条件结果。
详细讲解
&&:逻辑与
理解:
多个条件全部为true,则为true,只要有一个条件不满足为false,则后面的所有条件都不会判断,直接返回false.
简单说:全部为true返回结果为true
例如:
1
2
3
4
5
6
7
8案例1:
var a=10;
var b=11;
var isTrue=a>10 && b>10;//返回结果为false
案例2:
var a=10;
var b=11;
var isTrue=a>=10 && b>10;//返回结果为true解释以上代码:
案例1:因为a=10,a的值为10,那么a>10返回false,就算b>10为true,返回结果还是为false
案例2:a>=10返回结果为true,b>10返回结果也为true,两个条件都为true,则返回结果为true
思考如下题目,且分析:
- 题目一:如下代码,请问isTrue为true还是false,变量a,b,c的值分别是多少?为什么?
1
2
3
4
5
6
7
8<script>
var a=10;
var b=11;
var c=11;
var isTrue=a++>=b && ++b>c--;
console.log("isTrue:"+isTrue+",a="+a+",b="+b+",c="+c);
</script>- 题目二:如下代码,将a++变成了++a,请问isTrue为true还是false,变量a,b,c的值分别是多少?为什么?
1
2
3
4
5
6
7
8<script>
var a=10;
var b=11;
var c=11;
var isTrue=++a>=b && ++b>c--;//将++放在a前面,结果又是什么?
console.log("isTrue:"+isTrue+",a="+a+",b="+b+",c="+c);
</script>||:逻辑或
理解:
只要满足一个条件为true,则结果就为true,所有条件为false才能为false,在比较过程,只要有一个条件满足为true,则后面的条件不再进行比较。
简单说:全部条件为false,才能是false
例如:
1
2
3
4
5
6
7
8案例1:
var a=10;
var b=11;
var isTrue=a>10 || b>10;//返回结果为true,因为b>10返回为true,结果则为true
案例2:
var a=10;
var b=11;
var isTrue=a>10 || b<10;//返回结果为false,两个比较都返回为false,则结果为false思考如下题目,且分析:
- 题目一:如下代码,请问isTrue为true还是false,变量a,b,c的值分别是多少?为什么?
1
2
3
4
5
6
7
8<script>
var a=10;
var b=11;
var c=11;
var isTrue=a++>=b || ++b>c--;
console.log("isTrue:"+isTrue+",a="+a+",b="+b+",c="+c);
</script>- 题目二:如下代码,将a++变成了++a,请问isTrue为true还是false,变量a,b,c的值分别是多少?为什么?
1
2
3
4
5
6
7
8<script>
var a=10;
var b=11;
var c=11;
var isTrue=++a>=b || ++b>c--;//将++放在a前面,结果又是什么?
console.log("isTrue:"+isTrue+",a="+a+",b="+b+",c="+c);
</script>!:逻辑非
理解:比较结果为true,则返回最终结果为false,比较结果为false,则返回最终结果为true
简单理解:取反
例如:
1
2
3
4var a=10;
var b=11;
var isTrue=!(a>b);//结果为true
var isTrue2=!(a<b);//结果为false
6. 连接运算符+
概念:
运算符用于把文本值或字符串变量加起来(连接起来)。
如需把两个或多个字符串变量连接起来,请使用 + 运算符。
实例:
如需把两个或多个字符串变量连接起来,请使用 + 运算符:
txt1=”What a very”;
txt2=”nice day”;
txt3=txt1+txt2;两个数字相加,返回数字相加的和,如果数字与字符串相加,返回字符串,如下实例:
1
2
3
4
5
6
7
8x=5+5;//二个数字为相加,则做加法运算,结果为:10
y="5"+5;//字符串和数据相加,则做连接,结果为:55
z="Hello"+5;//与上一样
x,y, 和 z 输出结果为:
10
55
Hello5
课后作业
1.怎么判定为闰年(true)比如2004,1901平年(false),使用逻辑运算符
算法:能被4整除“且”不能整除100“或者”能整除400的为闰年
2.如果你的钱(monty)大于100000,就可以娶媳妇,否则单身
3.小明和妈妈约定,期末考试如果“语文”和“数学”都满90分,母亲就带她去玩,否则回家补课。
4.小明考试各科及格分数线,数学65以上,语文60以上,英语80以上
5.输入一个今天温度,输入一个明天温度,今天温度比明天温度是增多了还是减少了
6.风扇顺时针转一圈360度,然后又逆时针转114.8度,又顺时针转33度他最后转了多少度。
7、高速路上限速80,按照你输入的速度是否超速
8、输入一个输大于或等于10就打印你所输入数,如果小于10就在前面增加0
9、当前水杯的水是100毫升,根据你输入的数是增加了或减少了多少
10.设酒驾阈值为80,通过输入酒精度数判断是否酒驾
11.输入两个数,依次输出两个数,和,差,积,商
12.你要购买汽油,通过输入(5号或7号)进行选择汽油类型,在输入想要购买多少汽油(以升为单位)
5号10元每升,7号15元每升。如果购买超过或等于10升,那么5号或7号汽油每升减少2元
请计算出消费余额.
13.输入长方形的长和宽,计算其周长和面积。
14.输入圆的半径,计算其周长和面积。
15.黄林超在银行存了1000元,年利率为3%,请问3年后他的本息和共多少钱?
16.有一堆香蕉共26根,邓家远每天吃掉一半再多吃一根,请问吃了3天后还剩多少?
17.李成志把一个篮球从6楼扔下,篮球每次回弹的距离为上一次掉落距离的一半,请问第三次回弹的高度是多少?(楼房单层高度为4m)