欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js运算符和逻辑分支

程序员文章站 2022-07-14 12:42:06
...

一、一元运算符

只能操作一个值的运算符叫做一元运算符

var a = ++b; //加后取值先执行加法运算, 再取值
var a = b++; //加前取值先取值, 再执行加法运算

其他类型应用一元运算符的规则

var b = '89'; 
b++; //90,数值字符自动转换成数值
var b= 'ab'; 
b++; //NaN,字符串包含非数值转成NaN
var b = false;
b++;//1,false转成数值0,累加就是1
var b = 2.3; 
b++; //3.3,直接加1
Number(true)  1
Number(false)  0

二、关系运算符

js运算符和逻辑分支

1、用于进行比较的运算符称作为关系运算符.

  1. 数字和数字比较,直接比较大小;
  2. 数字和字符串比较,字符串转换为数字后再比较;
  3. 字符串和字符串比较,进行字符的ASCII码值比较。

字符与ASCII值互转

var str = "A";
str.charCodeAt(); 	// 65
var num = 97;
String.fromCharCode(num);  // 'a'

比较注意事项:

  1. 布尔值 ture=1, false=0
  2. 只要不等于NaN, 就是true,其他有NaN的运算都为false
  3. 如果要恒等, 则必须值和类型都要相等;

2、关系运算符(特殊值)

null == undefined true
‘NaN’ == NaN false
5 == NaN false
NaN == NaN false
false == 0 true
true == 1 true
true == 2 false
undefined == 0 false
null == 0 false
‘100’ == 100 true
‘100’ === 100 false

三、逻辑运算符

逻辑运算符通常用于布尔值的操作,一般和关系运算符配合使用,有三个逻辑运算符:逻辑与(AND)、逻辑或(OR)、逻辑非(NOT)。

逻辑与&&运算符属于短路操作,顾名思义,如果第一个操作数返回是false,第二个数不管是true还是false都会返回false。

逻辑或||运算符也是短路操作。当第一操作数的求值结果为true, 就不会对第二个操作数求值了。
js运算符和逻辑分支
短路效果

var a = 1;
console.log(a++ || true)
--->1
console.log(a)
--->2
console.log(true || a++)
--->true

四、逻辑非(NOT): !

逻辑非运算符可以用于任何值。无论这个值是什么数据类型,这个运算符都会返回一个布尔值。它的流程是:先将这个值转换成布尔值,然后取反,规则如下:

  • 操作数是一个空字符串,返回true; 非空字符串, 返回false
  • 操作数是数值0,返回true; 任意非0数值(包括 Infinity),返回false
  • 操作数是NaN, 返回true
  • 操作数是undefined, 返回true

五、赋值运算符

赋值运算符用等于号(=)表示,就是把右边的值赋给左边的变量。
赋值运算符通过x=的形式表示,x表示算术运算符。
如:=、+=, -=, *=, /=, %=等
js运算符和逻辑分支

六、算数运算符和其他运算符:

算数运算符:+,-,*, /, %(取余数)

三目运算符: ?:

字符串运算符: 字符串运算符只有一个,即:“+”。它的作用是将两个字符串相加。规则:至少一个操作数是字符串

七、程序的三大流程控制

共有三种基本结构:

顺序:从上朝下执行的代码就是顺序

分支(选择):根据不同的情况,执行对应代码

循环:重复做一件事情

(1) 顺序结构
顺序结构是最简单的程序结构,它是由若干个依次执行的处理步骤组成的。

(2) 分支结构
在处理实际问题时,只有顺序结构是不够的,经常会遇到一些条件的判断,流程根据条件是否成立有不同的流向。

(3) 循环结构

需要重复执行同一操作的结构称为循环结构,即从某处开始,按照一定条件反复执行某一处理步骤,反复执行的处理步骤称为循环体

1.IF单分支

if条件判断语句的写法:

if(表达式){
  执行语句
}

当括号内的表达式结果成立(为true时),则执行大括号内的语句,否则不执行。
注意:

  1. if后面的()不能省略;
  2. 一条执行语句可以省略{}, 多条时不能省略{}, 建议不管是一条还是多条都写上{}

2.IF双分支

if(表达式){
  执行语句1
}
else{
  执行语句2
}

当if括号内的表达式结果成立,执行执行语句1,否则执行执行语句2;

3.IF多分支语句

if(表达式){
	执行语句1
 } 
 else if(表达式2){
	执行语句2
 }
 else if(表达式3){
	执行语句3
 }
 else{
	执行语句n
 }

从上往下,满足哪个条件就执行其相对应的语句,都不满足时,执行最后的else的语句,只能进入其中之一。

4.IF的嵌套

将整个if语句块插入另一个if语句块中

if (表达式1) {
     if (表达式2)  {
       if (表达式3){
             语句;
       }
 	  else{
	       语句;
     }
}
  else{
        语句;
  }
}

注意:嵌套if时,最好不要超过三层; 内层的每一对if…else代码要缩进且对齐;编写代码时,else要与最近的if配对。

5、switch语句的写法:

switch(表达式) {
     case 常量1:语句; break;
     case 常量2:语句; break;
     case 常量n:语句; break;
     default:语句; break;
}

表达式的结果等于哪个case的常量,则执行其后的语句,执行完break就跳出switch结构,都不满足则执行default的语句。

break的作用:是跳出switch结构,如果没有break,则继续执行下面分支的的语句(而不进行判断)。

注意case穿透,要加break

switch的应用场景:表达式为固定值,不能判断范围

八、循环的分类

(1).while循环
(2).do-while循环
(3).for循环

  • for in
  • forEach

1、while循环语法格式

while(表达式)
{
    执行代码;
}

注意:
1.while循环必须按照上述语法格式来写, 只能更改表达式内容和执行代码;
2.表达式可以是常量,变量或者其他表达式,该表达式会被强制转换为boolean类型, 可以理解表达式就是循环的条件;
3.执行代码可以有多行, {}所包含的称为循环体;;
4.表达式不要一直是true, 避免死循环;
5.while循环的顺序是: 先判断表达式是否为true, 若true则执行执行代码, 然后再继续判断表达式是否为true, …. 直到判断表达式为false才会跳出循环, 执行while后面的代码。

while循环一般会有: 循环初始值, 循环条件 和 循环变量增量(或者减量)

2、for循环语法格式

主体结构

for (表达式1; 表达式2;表达式3){
       执行代码;
}

示例

for(var i=0;i<5;i++){
  console.log(i)
}
for循环将 循环初始值, 循环条件, 循环变量增量写在了一起
注意: 三个表达式都是可选填写, 但是如果后两个不写,会造成死循环; 而第一个为初始化值,所以我们三个一般都要写上.

3、for in 返回索引值

for(var i in Array){
  console.log(i)
}

4、forEach 返回值

Array.forEach(function(arg){
  console.log(arg)
});

5、break关键字

  1. 在switch语句中使流程跳出switch结构;
  2. 在循环语句中使流程跳出当前循环。

注意:

  • 如果已执行break语句,就不会执行循环体中位于break后的语句。
  • 在多层循环中,一个break语句只向外跳一层。

6、continue关键字

只能在循环语句中使用,使本次循环结束,即跳过循环体中下面尚未执行的语句,接着进行下次是否执行循环的判断。

注意:

  • continue语句只能用在循环里。
  • 对于while和do-while循环,continue语句执行之后的动作是条件判断;对于for循环,随后的动作是变量更新。
相关标签: 前段 javascript