js 运算符 流程控制 循环结构

  1. 运算符

1.算术运算符

+,-,*,/,%,++,--

 

  1. 关系运算符

   (比较运算符)

只要是使用关系运算符比较出来的结果一定是Boolean

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

1.10 > 5 : true

2."10" > 5 : true

如果运算符两端有一个操作数是数字的话,

那么另外一个也会通过Number()转换成数字,再进行比较

3."3" > 5 : true

先将3转换为数字,再与5比较大小

4."10a" > 5 : false

1.先将10a通过Number()转换,结果为NaN

2.使用 NaN与5进行比较

NaN与任何数据做!=,结果都为true

NaN与任何数据除了!=,结果都为false

5."10a" < 5 : false

6."张三丰" > "张无忌" : false

比较每位字符的Unicode码

最终比较的是"三"和"无"的大小关系

"三":19977

"无":26080

7."10" > "5" : false

8."10" < "5" : true

9."50" > "5" : true

10."49" > "5" : false

 

=== , !==

 "3" == 3 : true

===:比较的数据和数据类型必须都相等的情况下,整个结果才为真

"3" === 3 : false

!==:比较的数据和数据类型只要有一个不相等,结果就为true

"3" !== 3 : true

 

3.逻辑运算符

判断数字 n ,是否大于3 小于5

运算符: !,&&,||

 

! : 等同于 python中的 not

对现有条件取反

非真既假,非假既真

 

&& : 等同于 python中的 and

关联两个条件,起到 并且 的作用

关联的两个条件必须同时都为真的时候,

整个结果才为真,否则结果为假

    || : 等同于python中的 or

关联两个条件,起到 或者 的作用

关联的两个条件中,只要有一个为true的话,整个结果就为true.只有两个条件同时都为false的时候,整个表达式的结果才为false

 

 

练习1:

1.创建一个网页

2.从弹框中录入一个数字,表示年份

3.判断该年份是否为闰年并输出结果(true 或 false)

闰年:能被4整除但不能被100整除或能被400整除的年份都是闰年

练习2:

从弹框中录入1个字符,判断该字符是英文?中文?数字?

 

从弹框中录入:5

是数字吗?false

是英文吗?true

是中文吗?false

4.位运算符

1.按位与 : &

 

3 & 5

3 : 011

5 : 101

==========

    001

  使用场合:判断一个数字的奇偶性   

任意数字与1做按位与操作,结果为1是奇数,结果为0是偶数

   5 & 1

   5 : 101

   1 : 001

   =======

       001

 

   4 & 1

   4 : 100

   1 : 001

   =========

       000

 

 

2.按位或 : |

5 | 3 :

5 : 101

3 : 011

=======

    111

  使用场合:任意小数与0做按位或操作,快速取整(抛弃小数位,保留整数位)

 

3.按位异或 : ^

 

3 ^ 5 :

3 : 011

5 : 101

==========

    110

 

var a = 3;

var b = 5;

 

a = a ^ b;

b = b ^ a;

a = a ^ b;

 

a = 5;

b = 3;

使用场合:

在不借助第三方变量的情况下快速交换两个数字的位置

 

 

 

5.条件运算符

单目运算符

/ 一元运算符:只有一个操作数的运算符

如:++,--,!,typeof,-

双目运算符

 / 二元运算符:有两个操作数的运算符

如:+,-,*,/,%,&&,||,&,|,^,>,<,... ...

三目运算符

 / 三元运算符:有三个操作数的运算符

如:条件运算符 ? :

语法

条件表达式 ? 表达式1 : 表达式2;

先判断条件表达式得结果,如果为true,则执行表达式1的内容,否则,执行表达式2的内容

等同于 python 中的 :

if 条件表达式:

表达式1

else:

表达式2

 

 

练习:BMI指数计算

要求从弹框中录入身高(m)

要求从弹框中录入体重(kg)

BMI = 体重 / (身高 * 身高);

 

如果 BMI 小于 18.5 属于 偏瘦

如果 BMI 大于 23.9 属于 偏胖

否则 : 正常

6. op=

var a = 5;

a += 5;  // a = a + 5

 

a += 1; // a = a + 1 ; a++;++a;

 

ex : 交换 a 与 b 两个变量中的值

a ^= b; // a = a ^ b;

b ^= a; // b = b ^ a;

a ^= b; // a = a ^ b;

流程控制

程序的流程结构

1.顺序结构

2.分支结构(选择结构)

3.循环结构

分支结构

1.if 结构

1.

if(条件){

语句块;

}

 

注意:

1.条件不是boolean的话,以下情况视为 false

if(0.0){}

if(0){}

if(""){}

if(undefined){}

if(null){}

 

if(35.5){ 真 }

if("王伟超真帅"){}

2.if 结构可以省略 {}

如果省略的话,if则只控制它下面的第一条语句

 

2.

if(条件){

语句块1

}else{

语句块2

}

3.

if(条件1){

语句块1

}else if(条件2){

语句块2

}else if(条件n){

语句块n

}else{

语句块n+1

}

 

练习:

分三次从弹框中录入年,月,日

计算该日是该年的第?天

switch 结构

特点

只能用在等值判断的场合

语法

switch(变量){

case 值1:

语句块1

break;//可选,跳出switch结构

case 值2:

语句块2

break;//同上

... ...

default:

语句块n

//当所有的switch都未匹配上的时候才会执行 default

//default 块是可选的

}

注意:

1.变量 和 各个case块后面的值,是采用 ===的方式来匹配的

2.如果case后面不增加break的话,则从匹配的case块开始向下依次执行(不判断),直到结束或碰到break为止

 

 

 

 

循环结构

循环作用

重复的执行相同或相似的代码

循环二要素

1.循环条件

2.循环操作

while 循环

语法

while(条件){

循环操作

}

练习:

1.打印100遍的Hello World

var i = 1;

while(i<=100){

console.log("H W");

i++;

// ++i;

// i+=1;

// i=i+1;

}

练习:

1.打印1-100之间所有3的倍数的数字

2.打印 九九乘法表中的某一行

从弹框中录入一个数字,录入的是几,就打印第几行

do...while 循环

 

意义

循环的从弹框中录入数据,并将录入的数据打印在控制台上,直到输入 exit 为止

语法

do{

循环操作

}while(条件);

.流程

 

1.先执行循环操作

2.再判断循环条件

3.如果条件为真,则继续执行循环操作,否则退出循环

 

 

作业:

分三次输入年,月,日

判断该日是星期?

前提:1900.1.1 是星期一

附加:将该月的日历,打印输出

日 一 二 三 四 五 六

    1 2 3 4 5

6 7 8 9 10  11  12

 

 

 

循环

1.循环的流程控制

1.break

在循环体内使用,用于跳出整个循环结构

2.Continue

在循环体内使用,用于跳出本次循环,继续执行下次循环

 

例子:

1.错误:

switch(i){

case 1:

console.log(1111);

break;

case 2:

console.log(2222);

continue;

}

2.正确:

while(i < 10){

switch(i){

case 1:

console.log(1111);

break;

case 2:

console.log(2222);

continue;

}

i++;

}

2.for 循环

1.while

打印1-100之间所有的数字

var i=1;//循环条件的初始化

while(1 <= 100){//循环条件的判断

console.log(i);//循环操作

i+=1;//更新循环条件

}

2.for

1.语法:

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

循环操作

}

表达式1: 循环条件的初始化

表达式2:循环条件的判断

表达式3:更新循环条件

 

打印1-100之间所有的数字

for(var i=1;i<=100;i++){

console.log(i);

}

 

流程:

1.先执行表达式1,声明条件(执行1次)

2.再判断表达式2的值,true或false

3.如果条件为true,则执行循环操作

  如果条件为false,就退出循环

4.执行完循环操作后,在执行表达式3

5.再判断表达式2的值,同步骤

 

3.for  VS  while

  1. 相同

     先判断 条件,在执行循环操作

  1. 不同

     while:优先使用在不确定循环次数的场合下

 for: 优先使用在确定循环次数的场合

4.循环的嵌套

允许在一个循环的内部再出现一个循环

//外层循环

for(var i=1;i<10;i+=1){

//内层循环

for(var j=1;j<=10;j++){

 

}

}

外层循环走一次,内层循环走一轮

 

练习

1.修改 日期计算器,将whlie 循环更改为for

2.判断素数(质数)

3.练习:在控制台中打印以下图形

    *      4个空格1个*

   ***     3个空格3个*

  *****    2个空格5个*

 *******   1个空格7个*

*********  0个空格9个*

 

空格条件:从1开始到总行数-当前行为止

星星条件:从1开始到当前行数*2-1为止

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值