学习js第二天小结

时间:2020-12-23 20:54:03
  1. if-else if       ---------适用于区间范围的判断

If(判断条件--一般是boolean类型的值或是关系表达式或是逻辑表达式

){ 

要执行的代码;

}else if(判断条件){

要执行的代码;

}…

执行过程:先判断if小括号内的条件是否成立,如果成立,就返回true继续执行if大括号内的代码,如果if小括号内的条件不成立,就返回false,然后判断else if括号里的内容,如果成立,同样返回true,继续执行else if大括号内的内容,小括号内的条件不成立就返回false,然后判断下一个else if…

 

  1. 三元运算符:

表达式1(关系表达式或是逻辑表达式)? 表达式2:表达式3;

执行过程:先判断表达式1中的内容是否成立,也就是返回true,如果正确则表达式2的值就是整个表达式的结果,如果表达式1的内容不成立,也就是返回false,则表达式3的值就是整个表达式的结果。

 

  1. Switch-case    ----------适用于定值的判断 

switch(值--一般是一个变量或是计算后的定值){

case 值1:

 要执行的代码;

break;

case 值2:

 要执行的代码;

Break;

Case 值3:

要执行的代码;

Break;

Default:

要执行的代码;

Break;

}

执行过程:

当程序执行到switch处,先进入小括号,计算里面值,然后拿着这个定值依次和大括号中case里面的值进行匹配,如果匹配成功,则执行对应的case中的代码,遇到break,则跳出当前swicth-case结构,如果匹配都不成功,则要看结构是否有default,如果有,则执行default中的代码,遇到break跳出结构,如果没有default,则直接跳出swicth-case结构,执行后面的代码。

 

4.短路运算小结

&& :(找假)

如果两边是布尔类型,则最后返回的值要么是true,要么是false。

例: var a=12>10&&10>14;

Console.log(a);

  分析:先判断&&都是布尔类型,左边为true,右边返回false,因为&&是找假的所以最后的结果是false;

如果&&两边都不是布尔类型,会先将两边转化为布尔类型返回,返回的值是false的那一边的操作数。

例:var b=”abc”&&”bcd”;

console.log(b);

分析:先判断&&两边不是布尔类型,但是都是为真的,因为&&是找假的一方返回,所以先判断左边是真,则跳过,此时不管右边是真是假都返回右边的值。结果是bcd.

如果两边都是false值,那么就返回第一个值。

 例:var c=NaN&&undefined;

Console.log(c);

分析:先判断&&两边都不是布尔类型,需要转换,都是false,所以返回第一个值,最后的结果是NaN.

|| : (找真)

如果||两边都是布尔类型,则返回的值要么是true要么是false.

Var d=10<10||10<12;

Console.log(d);

分析:首先||两边都是布尔类型,再判断左边为假,右边为真,而||是找真的,所以返回的是右边的布尔值,最后结果为true.

如果||两边都不是布尔类型,则先将左右对象转化成对应的布尔类型的值,然后再返回布尔类型所对应的值。转换之后如果第一个值所对应的布尔值为true,则返回第一个值,否则就返回第二个值。

Var e=”abc”|| “cde”;

Console.log(e);

分析:||左右不是布尔类型,开始转化左右为布尔类型,左边为正,因为||找真,所以直接返回左边的true所对应的值,结果为abc.

 

逻辑!(非)

如果操作数是对象,返回false

如果操作数是空字符串,返回true

如果操作数是非空字符串,返回false

如果操作数是0,返回true

如果操作数是任意非0值,返回false

如果操作数是null,undefined,NaN,返回true

上面的规则可以简化成

转换为false的值:false、""、0和NaN、null、undefined

5.while

循环: 所谓循环就是重复的做同一件事情

while 循环

while(循环条件){

    循环体(要执行的代码);

}

执行过程:当程序 运行到while处,首先进入小括号判断循环条件是否成立,如果成立,也就是值为true,则进入大括号执行里面的循环体,执行完毕之后,再次回到小括号中判断 循环条件是否成立,如果成立则再次进入大括号执行里面的循环体,往复循环。

 

6.do-while

Do{

循环体;

} while(循环条件)

执行过程:

程序执行到do处,先进入大括号执行里面的循环体,然后带着执行结果到达while的小括号,判断里面的循环条件是否成立,如果成立,则再次进入大括号执行里面的循环体,如果不成立,则跳出当前do-while循环。

Do-while与while的区别:

Do-while至少执行一次循环体,然后再判断 循环条件。

While先判断循环条件,再执行循环体,有可能 一次循环体都不执行。

 

7.for循环

一般多用于已知次数的循环

 for(表达式1;表达式2;表达式3){

循环体;

}

 执行过程:

程序运行到for处,进入小括号中,先执行表达式1,声明变量,并赋初值,然后执行表达式2,判断循环条件是否成立,如果条件成立,则进入大括号执行里面的循环体,第一次循环的时候,并不执行表达式3,第一次循环执行完毕之后,执行表达式3,改变循环条件,然后再执行表达式2,判断循环条件是否成立,如果成立,则再次执行循环体,如果不成立,则跳出循环。

循环的嵌套,外层循环循环一次,内层循环n次。

 

8.break与continue的区别:

Break;

两种用法 :

  第一种用在swicth-case 用于跳出当前程序

 第二种,是用在循环当中,一般是用while或是for循环当中,与if搭配使用,作用就是立即跳出当前循环,后面的代码都不再执行

也常见用于死循环的跳出。

While(true){

}

Continue:

一般也是用于循环当中,当遇到continue关键字的时候,立马停止本次循环,然后回到循环条件处,判断 循环条件是否成立,如果成立则继续下一次循环,如果不成立,则退出当前循环。

只结束当前本次循环,continue后面的代码都不再执行。

 

9.数组

创建数组的两种方式。

// 第一种,用构造函数的方式创建 数组
//        var arr=new Array();
//        arr[0]=100;
//        arr[1]=99;
//        arr[2]=98;
//        arr[10]=23;
//        console.log(arr.length);
//        console.log(arr);
//        //第二种创建数组
        var arr=[12,12,32,true,undefined,"abc",null];
        console.log(arr[2]);
        console.log(arr[arr.length-1]);