web学习笔记(十二)

目录

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语句的执行效率比较高,而且结构更清晰。 

你可能感兴趣的:(笔记,学习,笔记)