JavaScript运算符和流程控制(if、switch、三元表达式)

简介: JavaScript运算符和流程控制总共有三类if、switch、三元表达式。

目录


一、运算符


1:算数运算符


2:递增和递减运算符


练习:


3:比较运算符


举例:


4:逻辑运算符


- 逻辑与&&


- 逻辑或 ||


- 逻辑非 !


练习:


- 短路运算(逻辑中断)


练习:


5:赋值运算符


举例:


练习:


6:运算符优先级


二、流程控制


- if语句


举例:


- switch语句


举例:


总结:


- 三元表达式


三、例题


1: 用户输入一个数,判断其是奇数,还是偶数。


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


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


4:用户输入的密码需要1到6位的数字。


5:会员等级:1代表金牌会员,2是银牌会员,3是铜牌会员,4是普通会员,四种会员进店消费xxx元,其中普通会员无折扣,会员享受9折,如消费满1000元,金牌会员享受6折,银牌会员销售7折,铜牌会员享受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


练习:

var a = 10;
 ++a;
var b = ++a + 2;
console.log(b);


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

练习:

var num = 7;
var str = "我爱你~中国~";
console.log(num > 5 && str.length >= num);
console.log(num < 5 && str.length >= num);
console.log(!(num < 10));
console.log(!(num < 10 || str.length == num));


- 短路运算(逻辑中断)

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


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


练习:

var num = 0;
console.log(123 || num++);
console.log(num);


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


练习:

var num = 10;
num += 5;
console.log(num);
var age = 2;
age *= 3;
console.log(age);


6:运算符优先级

1:小括号  ()

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

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

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

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

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

7:赋值运算符     =

8:逗号运算符    ,


二、流程控制


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


顺序机构


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


分支结构


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

- if语句
If(条件表达式){
   // 条件成立执行的代码
}
If(条件表达式){
   // 如果条件成立执行代码
}else{
  // 条件不成立 执行此代码
}
// 适合于检查多重条件。
if (条件表达式1) {
       执行代码1;
} else if (条件表达式2)  {
         执行代码2;
} else if (条件表达式3)  {
       执行代码3;
 } else {
        // 上述条件都不成立执行此处代码
 }


举例:

If( '中文' != '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


- 三元表达式

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


举例:


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


三、例题


1: 用户输入一个数,判断其是奇数,还是偶数。

var num=prompt("请输入一个数");

 var scr="";

 num%2==0?src="是偶数":src="是奇数";

 console.log(src);


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

var number=prompt("请输入一个数字");
  number=Number(number);
  if(number<10){
    console.log("0"+"0"+number);
  }else if(10<=number<=99){
    console.log("0"+number);
  }

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

var score =prompt("输入分数");
  score=Number(score);
  if(score>=90){
    console.log("优秀");
  }
   if(score>=80 && score<90){
    console.log("合格");
  }
   if(score>=60 && score<80){
    console.log("及格");
  }
   if(score<60){
    console.log("你很危险,该努力");
  }

4:用户输入的密码需要1到6位的数字。

var password = prompt("请输入密码");
  if( isNaN(passward) || password.length<1 || password.length>6){
  alert("请输入真确密码:");
  }else {
  console.log("密码正确",password);
  }


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


var grade = Number(prompt("请输入等级"));
  var amount = prompt("输入金额");
  var gradename=""
   switch(grade){
    case 1 : gradename="金牌会员";break;
    case 2 : gradename="银牌会员";break;
    case 3 : gradename="铜牌会员";break;
    default: gradename="普通会员";
   }if(grade<4){
    if(amount>=1000){
     switch(grade){
      case 1 : amount = amount*0.6;break;
      case 2 : amount = amount*0.7;break;
      case 3 : amount = amount*0.8;break;
    }
    }else{
     amount = amount*0.9;
    }
   }
  console.log("您的会员等级"+gradename+" 需要付款"+amount);

结束语:

让我们一起进步,拿到自己想要的offer。

相关文章
|
12天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的销售项目流程化管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的销售项目流程化管理系统附带文章源码部署视频讲解等
26 3
|
11小时前
|
前端开发 JavaScript
JavaScript 时空编织者:驾驭代码的控制流程
JavaScript 时空编织者:驾驭代码的控制流程
|
7天前
|
JavaScript 前端开发 开发者
JavaScript进阶-解构赋值与展开运算符
【6月更文挑战第19天】ES6的解构赋值与展开运算符增强了JS开发效率。解构允许直接从数组或对象提取值,简化数据提取,而展开运算符则用于合并数组和对象或作为函数参数。解构时注意设置默认值以处理不存在的属性,避免过度嵌套。展开运算符需区分数组与对象使用,勿混淆于剩余参数。通过示例展示了这两种操作在数组和对象中的应用,提升代码可读性与简洁度。
|
14天前
|
JavaScript 前端开发
JavaScript基础-运算符与条件语句
【6月更文挑战第11天】本文探讨了JavaScript中的运算符和条件语句,包括算术、比较、逻辑、赋值及三元运算符。强调了使用严格等于`===`避免类型转换错误,理解逻辑运算符短路特性和优化条件结构以提高代码可读性。通过示例展示了正确使用这些概念,以提升代码质量和维护性。
|
4天前
|
JavaScript 前端开发
JS常见的运算符有哪些?
JS常见的运算符有哪些?
7 0
|
1月前
|
JavaScript 前端开发
JavaScript中的短路表达式
JavaScript中的短路表达式
17 1
|
1月前
|
JavaScript 前端开发
JS中运算符的算术、赋值、+、比较(不同类型之间比较)、逻辑
JS中运算符的算术、赋值、+、比较(不同类型之间比较)、逻辑
19 1
|
1月前
|
JavaScript 前端开发
js的运算符
js的运算符
29 2
|
27天前
|
JavaScript Java 测试技术
基于springboot+vue.js的工作流程管理系统附带文章和源代码设计说明文档ppt
基于springboot+vue.js的工作流程管理系统附带文章和源代码设计说明文档ppt
16 0
|
1月前
|
JavaScript
js的一些运算符规则
js的一些运算符规则
17 1