js基础2 运算符与流程控制

5.运算符

5.1 算术运算符掌握点
  1. 任何非数值类型的数据在参与加法运算(这里指加减法)之前,都会被自动转换成数值类型,然后再参与运算。true转化为1,null转化为0,

  2. 任何数据与NaN进行加减运算,结果都是NaN

  3. 任何数据与字符串相加,都会被先转换为字符串之后再运算,也就是字符串拼接;数据与字符串相减字符串‘数字’被直接转换为数字再运算,字符串‘字母’运算结果为NaN

    乘除法与减法规则相同

  4. 模运算 格式:m%n = 余数

    如果m>n,那么正常取余;m<n,那么结果是m;n是0,结果为NaN;且模运算的结果正负性,取决于m而不是n

5.2 赋值运算符s

1.= /= *= %= += -= 具有右结合性,等号左边只能为变量;

5.3 自增/减运算符

a++ ++a a-- --a自增自减运算符最好不要出现在表达式中,也不能用在常量上

5.4 关系运算符

< > >= <= == != === !===

  1. 关系运算符返回值只有true和false

  2. 对于非数值类型数据,会先转换成数值类型再进行判断

  3. 任何数据与NaN比较都会返回false

  4. 如果参与比较的都是字符串类型,不会转换为主值类型,而是转换为Unicode编码

  5. 如果参与比较的有多个字符,会从左向右依次比较直到条件不满足为止

  6. 特殊比较结果null == 0结果为false;``null == undefine结果为true;``NaN == NaN结果为false;
    不可以通过==来判断一个数据是否为NaN类型,使用isNaN()函数

优先级和结合性

  1. === !==会判断数值以及数据类型是否相等
  2. 关系运算符“左结合”
  3. < > >= <=优先级大于== != === !===
5.5 逻辑运算符
  1. 逻辑与&& ,返回值true和false

  2. 逻辑或||,返回值true和false

  3. 逻辑非,返回值true和false

    优先级和结合性

  4. 左结合性,从左至右的运算

  5. 优先级&&>||

  6. 逻辑与运算中,如果参与运算的不是布尔类型,则先转换为布尔类型再参与运算;A&&B,如果A不成立则返回A,成立则返回B;

  7. 逻辑或运算中,如果参与运算的不是布尔类型,则先转换为布尔类型再参与运算;A&&B,如果A成立则返回A,不成立则返回B;

  8. 逻辑与存在逻辑短路现象,条件A不成立则表达式B不做运算

  9. 逻辑或存在逻辑短路现象,条件A成立则表达式B不做运算

5.6 逗号运算符
  1. 利用逗号运算符,同时定义多个变量;同时给多个变量赋值;

  2. 左结合性,一般用于简化代码

  3. 逗号运算符的结果就是最后一个表达式的结果

5.7 三目运算符
  1. 条件表达式?结果A:结果B

  2. 条件为真,返回A;条件为假,返回B

6.流程控制

顺序结构,选择结构,循环结构

6.1 选择结构if

  1. if的第一种形式
 if(条件表达式){

   ​	条件满足执行的语句;

   ​	}
  1. if的第二种形式
if(条件表达式){

   条件成立执行语句;

   }else{

   条件不成立执行语句;

   }
  1. if第三种形式

```javascript
 if(条件表达式A{

   条件A满足执行语句;

   }else if(条件表达式B{

   条件B满足执行语句;

   }......

   else{

   前面条件都不满足时执行此语句;

   }

``

  1. 非布尔类型的数据,会先转换成布尔类型再判断;对于== 和 ===的判断,建议将常量写在前面;if/else if/else后面的大括号都可以省略,但是省略之后只有紧随其后的语句受到控制;在js中分好(;)也是一条语句,它是空语句;if选择结构可以嵌套使用;当if省略大括号时,else if/else会自动和距离最近没有被使用的if匹配;

6.2 选择结构switch

  1. switch格式
 switch(表达式){case 表达式A:

   ​		语句A;

   ​		break;

   ​	case 表达式B:

   ​		语句B;

   ​		break;

   ​		...default:

   ​		前面所有的case都不匹配知性的代码;

   ​		break}
  1. case判断是===,数值和类型都需要相等;()中可以是常量也可以是变量和表达式;case可以是常量变量表达式;break立即结束整个switch语句;default不一定写在最后,且可以省略;

  2. 对区间判断选择if,对固定值的判断选择switch,推荐使用if

6.3 循环结构 while

  1. 死循环;循环体是while大括号内的所有内容;
  2. 非布尔类型的的值,会转化为布尔类型再判断;while后如果只有一条语句可以省略大括号;不能在()后写分号

6.4 dowhile循环

  1. 格式
do{

​	需要重复执行的代码;

}while(条件表达式)
  1. 无论条件是否为真,循环体都会执行一次
6.5 变量作用域
  1. js中定义变量,使用var和let(es6之后)

  2. 同一定义域内,var可以重复定义同名变量,后定义的变量覆盖先定义的变量,且var定义的变量可以先使用后定义,因为var有预解析操作

  3. 同一定义域内,let不可以重复定义同名变量,且不可以先使用后定义,没有预解析操作

  4. let在块级作用域中定义变量,是局部变量

6.6 for循环
  1. for循环格式
   for(初始化表达式;条件表达式;循环后增量表达式){

   ​	重复执行语句

   }
  1. for循环内的初始化表达式可以定义局部变量

  2. for循环的()内容可为空,相当于while(1),但while玄幻不可省略

6.7 关键字
  1. break关键字,可是用于switch语句和玄幻结构中,在switch语句中break关键字的作用是立即结束当前的switch语句,在循环结构中作用是立即结束循环

  2. break后面的语句都会失效;break结束的是当前循环结构,即嵌套循环内break所在的那一环

  3. continue关键字,只能用于循环结构,跳过本次循环进入下一次循环

  4. continue关键字后的语句会失效;continue跳过的是当前循环结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值