自学阶段三JS基础—Day2

98 阅读4分钟

一、运算符

1. 比较运算符

    比较运算符的结果是布尔类型
    全字符串的比较,比较的是字符编码
    在进行===和!==的比较时,不会进行类型的转换

  ==   判断两个数据值相同,如果相同返回true,否则返回false
  !=   判断两个数据值不相同,如果不相同返回true,否则返回false

  ===  全等
       比较的两个数的值与类型必须完全相同,相同返回true,否则返回 
       false
  !==  不全等
       比较的两个数的值与类型至少有一方面不相同,有一方面不相同就
       返回true,否则 返回false
 
    
2. 逻辑运算符
 
    &&  与    一假即假
    ||  或    一真即真
    !  非    真假倒换

3. 优先级

    逻辑非
    先乘除
    后加减
    再比较
    再逻辑(&&、||)
    最后赋值
    
    可以使用 () 来提升运算符的优先级
    
 4. 自增 自减
 
     i++ ++i在单独运算时没有任何区别
     
     参与其他运算时:
     
     前自增:先自增,再参与运算(使用本次自增后的值参与运算)
     
     后自增:先运算(使用本次未自增的值参与运算),本次运算结束后再
     自增

二、分支结构

1if
语法:

if(表达式1){
    代码块1
} else if (表达式2){
    代码块2
} ...
  ...
  else {
  缺省块代码
}

后结代码...
后结代码...

逻辑:

 自上而下的判断表达式是否成立,如果某个表达式成立就执行相应的代码
 块。
 当某个代码块执行结束后,不会再判断其后的表达式,而跳过if结构,继
 续后的代码执行
 如果所有的表达式都不成立,则执行缺省代码块

 else if结构可以在多个
 else 也可以省略的
 
 if里面的表达式返回的 是true或者false

2、三元运算符 
语法:

表达式 ? 语句1 : 语句2 ;
表达式成立执行语句1,不成立执行语句2 

三元运算符就是对 if else  双分支的简化
只要代码块中只有一条语句时才可以使用  三元运算符简化

3switch
语法:
switch(变量){
    case1 :
        代码块1
        breakcase2 :
        代码块2
        breakcase3 :
        代码块
        break;
        ...
      default:
        缺省代码块
}

逻辑:
  根据switch后的变量与case的值匹配情况,将程序转向不同的代
  码块执行。
  当代码执行结束后,遇到break就会跳过switch结构,继续后面代
  码执行

  当所有的值都不匹配时,执行缺省代码块。
  case 结构可以有多个,default也可以省略

注意:
   switch后面的变量与case后面的值的比较属于全等 ===,值和类型都
   必须一样
   break可以省略,实现穿透效果,可以对多个月份对应一个季节的情况
   进行穿透


if语句和switch语句的区别:

if条件常用于表示一个范围
switch条件常用于一个变量和多个具体值的区别
如果遇到一个变量和多个具体值的情况,使用switch,这种情况使用
switch 效率高于if

三、布尔类型的转换

显示转换 :

Number(数据) 将其他数据类型转换为数值类型
String(数据) 将其他数据类型转换为字符串类型
Boolean(数据) 将其他数据类型转换为布尔类型

Number(true) ➡ 1
Number(false)➡ 0

只要是有意义的都会返回true 
字符串‘0’ ‘空格’都有意义,返回true
数值0 字符串‘’ 都没有意义,返回false

image.png

隐式转换 :

image.png

四、for循环

语法:
for ( 循环控制变量初始化 ; 表达式 ; 循环控制变量修改) {
    循环体代码
    循环体代码
    循环体代码
}

循环逻辑:

image.png

执行逻辑:
  a. 首先执行 定义一个循环控制变量, 此步仅执行1b. 判断 表达式 是否成立?如果不成立就直接退出整个语法结构,执行
  后续代码。
  如果成立就执行语句块(循环体)
  c. 当 语句块(循环体) 执行结束后,再执行 循环控制变量修改
  d. 再来判断 表达式 是否成立?如果不成立就直接退出整个语法结构,
  执行后续代码。
  如果成立就执行语句块(循环体)
  e. 重复的执行 b c d 
  
循环控制变量也可以在循环体内部被访问。