JS——运算符(内附习题源码)

目录

一:运算符

1:算数运算符

2:递增和递减运算符

前置递增:

后置递增:

练习:

3:比较运算符

4:逻辑运算符

- 逻辑与 &&

- 逻辑或 ||

- 逻辑非 !

- 短路运算(逻辑中断)

5:赋值运算符

6:运算符优先级

7:流程控制

顺序机构

分支结构

- if语句

- switch语句

总结:

8:三元表达式

练习一:

练习二:

练习三:

练习四:

练习五:

练习六:

练习七:

练习八:


一:运算符

运算符也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号,常见的运算符:算数运算符,递增和递减运算符,比较运算符,逻辑运算符,赋值运算符。

1:算数运算符

概念:算术运算使用的符号,用于执行两个变量或值的算术运算。

加(+)、减(-)、乘(*)、除(/)、取余(%)

取余(%):返回除法的余数。

注意:浮点数的精度问题

浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数。

var result = 0.1 + 0.2;    // 结果不是 0.3,而是:0.30000000000000004

console.log(0.07 * 100);   // 结果不是 7,  而是:7.000000000000001

所以:不要直接判断两个浮点数是否相等 !

2:递增和递减运算符

如果需要反复给数字变量添加或减去1,可以使用递增(++)和递减( -- )运算符来完成。

举例:

var num=1;num++;//2

var num=1;++num;//2

放在变量前面时,我们可以称为前置递增(递减)运算符,放在变量后面时,我们可以称为后置递增(递减)运算符。

前置递增:

++num 前置递增,就是自加1,类似于 num =  num + 1,简写++num,先自加,后返回值。

  var  num = 10;

  alert(++num + 10);   // 21

后置递增:

num++ 就是自加1,类似于 num =  num + 1,简写 num++,先返回原值,后自加

  var  num = 10;

  alert(10 + num++);  // 20

3:比较运算符

<      小于号       1<2    true

>      大于号       1>2    false

>=     大于等于     2>=2   true

<=     小于等于     3<=2   false

==     是否相等     2==2   true

!=      不等号       3!=2   true

===     全等号       要求值和数据类型必须相等举例: “3”===3  false,”3”==3 true

举例:

console.log(3 >= 5); //false

console.log(2 <= 4); //true

console.log(3 == 5);//false

 console.log('中文' == 'chinese'); //false

console.log(10 == 10); //true

 console.log(10 == '10');//true

  console.log(10 != 10); //false

 console.log(10 === 10);//true

 console.log(10 === '10'); //false

4:逻辑运算符

逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。

- 逻辑与 &&

两边都是 true才返回 true,否则返回 false

console.log(true && false) //false;

Console.log(3>2 && 1>2); //false

- 逻辑或 ||

只要一边为true既返回 true,两边都为false时返回false

console.log(true ||  false) //true;

Console.log(3>2 ||  1>2); //true

- 逻辑非

逻辑非(!)也叫作取反符,用来取一个布尔值相反的值,如 true 的相反值是 false

 var isOk = !true;

 console.log(isOk);  // false

- 短路运算(逻辑中断)

短路运算的原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值;

console.log( 123 && 456 );        // 456

console.log( 0 && 456 );          // 0

console.log( 123 && 456&& 789 );  // 789

console.log( 123 || 456 );         //  123

console.log( 0 ||  456 );          //  456

console.log( 123 || 456 || 789 );  //  123

5:赋值运算符

=       直接赋值      var realname=”小明”;

+=,-=,*=,/=,%=  先计算在赋值;

举例:

var age = 10; age+=5;//15

var age = 10; age-=5;//5

var age = 10; age*=5;//50

var age = 10; age/=5;//2

var age = 10; age%=5;//0

6:运算符优先级

1:小括号  ()

2:一元运算符    ++、--、!

3:算数运算符    先*、/、% 后 +、-

4:关系运算符    >、>=、<、<=

5:相等运算符     ==、!= 、===、!==

6:逻辑运算符     先&& 后 ||

7:赋值运算符     =

8:逗号运算符    ,

7:流程控制

定义:就是来控制代码按照一定结构顺序来执行,流程结构主要分三种:顺序结构、分支结构、循环结构。

顺序机构

最基本的流程控制,它没有特定的语法结构,程序会按照代码的先后顺序执行。

分支结构

由上到下执行代码的过程中,根据不同的条件,执行不同的路径代码,从而得到不同的结果。JS分支结构分为两种:if语句、switch语句。

- if语句

If(条件表达式){

   // 条件成立执行的代码

}

If(条件表达式){

   // 如果条件成立执行代码   

}else{

  // 条件不成立 执行此代码

}

// 适合于检查多重条件。

if (条件表达式1) {

       执行代码1;

} else if (条件表达式2)  {

         执行代码2;

} else if (条件表达式3)  {

       执行代码3;

 } else {

        // 上述条件都不成立执行此处代码

 }

举例:

If( ''chinese' != 'chinese' ){

     //执行代码

}

var sex = prompt('请输入您的性别:');

if (sex==”男”) {

     alert('请上男卫生间');

}else if(sex==”女” ){

      alert('请上女卫生间');

}else{

    alert(“?”);

}

   

- switch语句

switch(表达式) {

     case n:

        代码块

        break;

     case n:

        代码块

        break;

     default:

        默认代码块

}

举例:

var sex=1;       

                  switch (sex){

                      case 1:

                           console.log("您喜欢的是猫");

                           break;

                          

                           case "狗":

                           console.log("您喜欢的是狗");

                           break;



                           default:

                           console.log("其他动物");

                  }

总结:

- 我们开发里面 表达式我们经常写成变量

- 我们num 的值 和 case 里面的值必须是全等

- break 如果当前的case里面没有break 就会继续执行下一个case

8:三元表达式

语法结构: 表达式1 ? 表达式2 : 表达式3;

举例:
Var num=11;
var res = num >10 ? '是的' : '不是的'; 
Console.log(res); //不是的 

练习一:

 用户输入一个数,判断是奇数还是偶数


			var str = prompt('请输入数值');
			if (isNaN(str)) {
				alert('请输入数字')
			} else {
				if (parseInt(str) % 2 == 0) {
					alert('您输入的是偶数');
				} else {
					alert('您输入的是奇数');
				}
			}

练习二:

输入一个1到99的数字,在数字前面补0,变为3位长度,如001

			var str = prompt('请输入数值');
			if (isNaN(str) || str.length >= 3) {
				console.log('请输入两位数字');
			} else {

				if (str.length == 1) {
					str = "00" + str;
				} else {
					str = "0" + str;
				}
				console.log(str);
			}

练习三:


            判断学生考试份数,90(包括)分以上为优秀、80(包括)-90分为合格、60(包括)-80分为及格,60分以下提示“你很危险,该努力”


			var str = prompt('请输入数值');
			if (parseInt(str) > 90) {
				alert('优秀');
			} else if (parseInt(str) >= 80 || str == 90) {
				alert('合格');
			} else if (parseInt(str) >= 60) {
				alert('及格');
			} else if (parseInt(str) < 60) {
				alert('你很危险,你该努力了');
			}

练习四:

 闰年的定义:四年一闰;百年不闰,四百年再闰

var year = prompt('请输入年份');
			if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) {
				alert('是闰年');
			} else {
				alert('不是闰年');

练习五:

收银店判断水果的价格。1代表苹果10元1斤,2代表梨子20元一斤,3代表葡萄5元一斤

var num = Number(prompt('请输入代码'));
			switch (num) {
				case 1:
					console.log('苹果10元一斤');
					break;
				case 2:
					console.log('梨子20元一斤');
					break;
				case 3:
					console.log('葡萄5元一斤');
					break;
				default:
					console.log('输入错误');
			}

练习六:

考驾照的年龄需要在18岁到70岁,不满足条件提示不符合

var age = prompt('请输入年龄');
			if(age >= 18 && age <= 70 ){
				alert('年龄可以报考驾照');
			}else{
				alert('条件不符合');
			}

练习七:

公园票价,浏览器接收:老人,成人,小孩,老人提示免票,
 成人中性别“男”为100,“女”为80,小孩为同性别成人的半票

var sex = prompt("请输入:老人,成人,小孩");
			var gender = prompt('请输入性别');
			var amountMan = 100;
			var amountWoman = 80;
			if (sex == '老人') {
				alert('免票');
			}
			if (sex == '成人') {
				if (gender == '男') {
					alert(sex + gender + "的票价:" + amountMan);
				} else {
					alert(sex + gender + "的票价:" + amountWoman);
				}
			}
			if (sex == '小孩') {
				if (gender == '男') {
					alert(sex + gender + "的票价:" + amountMan / 2);
				} else {
					alert(sex + gender + "的票价:" + amountWoman / 2);
				}
			}

练习八:

会员等级:1代表金牌会员,2是银牌会员,3是铜牌会员,4是普通会员,
            四种会员进店消费xxx元,其中普通会员无折扣,会员享受9折,
            如消费满1000元,金牌会员享受6折,银牌会员销售7折,铜牌会员享受8折。
            浏览器接收会员等级和消费金额,输出折后金额

var num = Number(prompt('请输入代码'));
			var money1 = 0;
			var money = Number(prompt('请输入金额'));
			switch (num) {
				case 1:
					if (money >= 1000) {
						money1 = money * 0.6
					} else {
						money1 = money
					}
					console.log('金牌会员:' + money1);
					break;
				case 2:
					if (money >= 1000) {
						money1 = money * 0.7
					} else {
						money1 = money
					}
					console.log('银牌会员' + money1);
					break;
				case 3:
					if (money >= 1000) {
						money1 = money * 0.8
					} else {
						money1 = money
					}
					console.log('铜牌会员' + money1);
					break;
				case 4:
					if (money >= 1000) {
						money1 = money * 0.9
					} else {
						money1 = money
					}
					console.log('普通会员' + money1);
					break;
				default:
					console.log('输入错误' + money1);
			}

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书棋06

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值