web学习笔记(十二)

2024-01-07 19:36:07

目录

1.运算符

1.1算术运算符

1.2比较运算符(关系运算符)

1.3赋值运算符

1.4逻辑运算符

1.5条件运算符

1.6运算符的优先级

1.7补充

2.流程控制

2.1顺序结构:

2.2分支结构:

(1)单分支(if 语句)

?(2)双分支(if else?语句)

(3)多分支---if else if?语句

(4)多分支---switch 语句

switch 语句和 if else if 语句的区别


1.运算符

1.1算术运算符

运算符

描述

实例

+

10 + 20 = 30

-

10-20 = -10

*

10*20 = 200

/

10/20 = 0.5

%

取余数(取模)

返回除法的余数9%2 = 1

不要直接判断两个浮点数是否相等,浮点数的精确度不如整数。

运算符

描述

实例

++

自增(也是一元运算符)

x=++y

x=y++

--

自减(也是一元运算符)

x=--y

x=y--

  • 后置: ?a++ ? ?先赋值,再自增(自减)------先人后己
  • 前置: ? ++a ? ?先自增(自减),再赋值。--------先己后人
  • 当不参加其他运算,只是自身增加和减小时,前置和后置是一样的,一但参与了其他运算(赋值也算运算)两者就会产生不同的效果。
  • 数字是常量没有自增自减,只有变量才有自增自减。
  • 开发时,大多使用后置递增/减,并且代码独占一行,例如:num ++;或者num--;

1.2比较运算符(关系运算符)

比较运算符(关系运算符)是比较两个值,比较运算后,会返回布尔值(true / false )作为比较运算的结果。

运算符名称

说明

案例

结果

小于号

1 < 2

true

>

大于号

1 > 2

false

> =

大于等于号(大于或者等于)

2>=2

true

< =

小于等于号(小于或者等于)

3

false

==

双等号(会自动转换数据类型---隐式转换?),只需要数据一样即可

37 == 37

true

!=

不等号

37 != 37

false

===

全等要求值和数据类型都一致

37 === '37'

false

1.3赋值运算符

赋值运算符的优先级比较低,不是最低,但低于别的运算符。

运算符名称

例子

等同于

结果

=

x=y

x=5

+=

x+=y

x=x+y

x=15

-=

x-=y

x=x-y

x=5

*=

x*=y

x=x*y

x=50

/=

x/=y

x=x/y

x=2

%=

x%=y

x=x%y

x=0

1.4逻辑运算符

概念:逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。后面开发中经常用于多个条件的判断

运算符名称

说明

案例

结果

&&(逻辑与)

and

(x < 10 && y > 1) 为 true

true

||(逻辑或)

or

(x==5 || y==5) 为 false

false

!(逻辑非)

not

!(x==y) 为 true

true

&&逻辑与:

  • 运算符两边的操作数两边如果有一个是布尔值,结果不一定是布尔,可能是原值 。
  • ?短路逻辑:运算符的两侧的操作数,如果第一个操作数是假,后面不再执行,直接返回第一个操作数结果。 ? ? 如果第一个操作数是真,则由第二个操作数来决定结果。

|| 逻辑或 :

  • 如果第一个操作数是真,直接返回第一个操作数的结果。 ? 如果第一个操作数是假,由第二个操作数来决定结果
  • &&优先级高于||

!逻辑非? :就是进行取反操作,如true的相反值是false。

1.5条件运算符

? ? ? ? 格式:? 判断条件??value1;value2 (若判断条件为真则返回value1,否则返回value2)

1.6运算符的优先级

运算符

描述

. [] ()

字段访问、数组下标、函数调用以及表达式分组

++、 --、(++a 优先级小于 a++) ?! 、delete new typeof void

一元运算符、返回数据类型、对象创建、未定义值

* / %

乘法、除法、取模

+ - +

加法、减法、字符串连接

> >>>

移位

< >= instanceof

小于、小于等于、大于、大于等于、instanceof

== != === !==

等于、不等于、严格相等、非严格相等

&

按位与

^

按位异或

|

按位或

&&

逻辑与

||

逻辑或

?:

条件

=、?+= 、-= 、*= 、/= 、%=

赋值、运算赋值

,

多重求值

1.7补充

  • ?一边数字,一边字符串数字 ?会自动转换数字类型? ?eg:? console.log('5'>15);//false
  • ?两边都是字符串 ?比较ascII码,一位一位比较? eg:? ??console.log( '5'>'15');//true
  • ??NaN和谁都不相等,和自身都不相等。
  • ? ?undefined 除了null和谁都不相等结果都是false

2.流程控制

流程控制主要有三种结构,分别是顺序结构、分支结构和循环结构,这三种结构代表三种代码执行的顺序。

2.1顺序结构:

? ? ? ? ? 顺序结构是程序中最简单、最基本的流程控制,它没有特定的语法结构,程序会按照代码的先后顺序,依次执行, 程序中大多数的代码都是这样执行的。

2.2分支结构:

(1)单分支(if 语句)

? ? 格式:? if(判断条件){

? ? ? ? ? ? ? ? 条件成立,执行的语句。

? ? ? ? ? ? ? ?}

?(2)双分支(if else?语句)

? ? ? 格式: if(判断条件){

? ? ? ? ? ? ? ? 条件成立,执行的语句

? ? ? ? ? ? ? ?}else{

? ? ? ? ? ? ? ? 条件不成立,执行的语句

? ? ? ? ? ? ? ?}

 let a = +prompt('请输入一个年份');
        if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0) {
            alert(`${a}是闰年`);

        } else {
            alert(`${a}是平年`);
        }

(3)多分支---if else if?语句

? ? ? ? 格式:? ? if(判断条件1){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 如判断条件一成立,执行代码块1

? ? ? ? ? ? ? ? ? ? ? ? ? }else if(判断条件2){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 条件1不成 立,条件2成立,执行代码块2

? ? ? ? ? ? ? ? ? ? ? ? ? }else if(判断条件3){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 条件1不成立,条件2不成立,条件3成立,执行代码块3

? ? ? ? ? ? ? ? ? ? ? ? ? ?}else{

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?所有条件都不成立,则执行此代码块

? ? ? ? ? ? ? ? ? ? ? ? ? }

  let a=+prompt('请输入您的分数');
        if(a>=90){
            console.log('A');
        }else if(a>=80&&a<90){
            console.log('B');

        }else if(a>=70&&a<80){
            console.log('C');

        } else if(a>=60&&a<70){
            console.log('D');

        }else{
            console.log('E');
        }

(4)多分支---switch 语句

当要针对变量设置一系列的特定值的选项时,就可以使用 switch。

  1. switch :开关 转换 , case :小例子 选项
  2. 关键字 switch 后面括号内可以是表达式或值, 通常是一个变量
  3. 关键字 case , 后跟一个选项的表达式或值,后面跟一个冒号
  4. switch 表达式的值会与结构中的 case 的值做比较
  5. 如果存在匹配全等(===) ,则与该 case 关联的代码块会被执行,并在遇到 break 时停止,整个 switch 语句代码执行结束
  6. 如果所有的 case 的值都和表达式的值不匹配,则执行 default 里的代码

注意: 执行case 里面的语句时,如果没有break,则继续执行下一个case里面的语句。

var fruit = prompt('请您输入查询的水果:'); 
switch (fruit) {
  case '苹果':
   alert('苹果的价格是 3.5/斤'); 
   break;
 case '榴莲':
   alert('榴莲的价格是 35/斤'); 
   break;
 default:
   alert('没有此水果');
}

switch 语句和 if else if 语句的区别

  • 一般情况下,它们两个语句可以相互替换
  • ?switch...case 语句通常处理 case为比较确定值的情况, 而 if…else…语句更加灵活,常用于范围判断(大于、等于某个范围)
  • ?switch 语句进行条件判断后直接执行到程序的条件语句,效率更高。而if…else 语句有几种条件,就得判断多少次。
  • ?当分支比较少时,if… else语句的执行效率比 switch语句高。
  • ?当分支比较多时,switch语句的执行效率比较高,而且结构更清晰。?

文章来源:https://blog.csdn.net/shan33__/article/details/135414561
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。