- 运算符
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 |
先判断 条件,在执行循环操作 |
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为止