1. 运算符
1. 位运算符
程序中的数据在计算机中都是以二进制形式存储的,位运算
实际上是对二进制的每一位进行操作
1. 按位与 :&
将操作数转换二进制之后,按位与,相同则为1,不同
则为0
et :
3 & 5 = 1
011
& 101
------
001
使用 :常用于判断整数的奇偶,将一个操作数与1做
位与,结果为1,该操作数为基数,结果为0,说明操作
数为偶数
3 & 1 = 1
011
001
------
001
2 & 1 = 0
010
001
------
000
2. 按位或 :|
将操作数转换为二进制之后,做位或,
et :
3 | 5 = 7
011
101
-------
111
3. 按位异或 :^
两位不同则为1,相同则为0
et :
3 ^ 5 = 6
011
101
-------
110
异或操作可以在不借助三方变量的情况下互换两个变量
的值
et :
var a = 3,b = 5;
var c = a;
a = b;
b = c;
使用异或 :
a = a ^ b; //6
b = a ^ b; // 6 ^ 5 -> 011 = 3
a = a ^ b; // 6 ^ 3 -> 101 = 5
2. 三目(元)运算符
语法 :
表达式1 ? 表达式2 : 表达式3
使用 :
1. 判断表达式1的结果(布尔值)
2. 如果表达式1结果为true,执行表达式2
3. 如果表达式1结果为false,执行表达式3
练习1 :
1. 接收用户输入的成绩score
2. 判断成绩等级
score >= 90 优秀
80 <= score <90 良好
60 <= score <80 及格
score < 60 不及格
3. 提示用户当前成绩...
练习2 :
1. BMI 身体指数计算
2. 接收用户输入,身高(m),体重(kg)
3. bmi = 体重 / (身高 * 身高)
4. bmi < 18.5 偏瘦
bmi > 23.9 偏胖
介于中间,健康
2. 流程控制
控制代码的执行顺序
流程控制语句 :
1. 顺序结构 : 代码自上至下一行一行执行
2. 选择结构(分支)
3. 循环结构
1. 选择结构 :
根据条件判断的结果选择执行某一段代码
1. 语法 :
1. if(判断条件){
条件为真时执行的代码段,
条件为假时,会跳过
}
注意 :
1. {} 可以省略,省略之后,认为if()后面的
第一条语句是条件成立时待执行的语句
2. 判断条件必须是布尔类型的结果
3. 非零值都为真,零为假
以下条件都为假 :
if(0){}
if(0.0){}
if(""){}
if(NaN){}
if(undefined){}
if(null){}
2. if-else语句
语法 :
if(条件){
条件为真时执行
}else {
条件为假时执行
}
et :
var a = 20;
if(a > 18){
console.log("成年人可以进网吧");
}else{
console.log("未成年人禁止入内");
}
3. if-else if语句
多重分支结构
if(条件1){
条件1成立时执行
}else if(条件2){
条件2成立时执行
}else if(){
}else{
条件不满足时执行
}
练习 :
1. 成绩等级判定
2. 日期计算器
1. 接收用户输入 年 月 日,判断用户输入的日期
是当年的第几天
et : 2018-1-15
2018-10-15
实现 :
1. 将当前月之前的整月天数累加
2. 加上当前月的天数
3. 当前年份是否是闰年
2. switch 语句
语法 :
switch(值){
case 1 :
值匹配恒等时,执行的语句
break;
case 2 :
值匹配恒等时,执行的语句
break;
...
default :
待执行的语句
}
注意 :
1. switch一般用于值得匹配,()中表示的是值
2. case 可以使用多个,每个case对应一种情况
3. case 后面直接写要对应匹配的值
et :
var a = 10;
swicth(a){
case 1 :
console.log("a=1");
break;
case 12 :
console.log("a=10");
break;
default :
console.log("查询不到");
}
4. 如果case给出的值匹配成功,执行当前case :
后面的语句
5. break 用于跳出匹配,不再向下执行匹配
6. default 表示所有的case都匹配失败之后默认执行的
语句
其他情况 :
1. default 关键字一般写在switch的末尾,匹配失败
之后最终执行的操作,可以省略
2. break 表示跳出switch语句,可以省略,如果省略
break,会从当前匹配到的case开始向后依次执行所有
的语句。
3. case 关键字,可以共用代码语句,注意配合break
et :
case 1:
case 2:
case 3:
console.log();
break;
练习 :
每周食谱
用户输入星期几 (1-7)
判断当前日期对应的食谱
练习2 :
改版日期计算器,计算当日是当年的第几天
2. 循环结构 :
重复执行某一段代码
1. 循环语句的三要素
1. 循环变量
2. 循环条件
3. 循环体
2. 语法
1. while 循环
while(循环条件){
条件成立时,执行循环体
}
执行流程 :
1. 定义循环变量
2. 判断循环条件
3. 条件成立,执行循环体
4. 更新循环变量 (重点)
5. 重复步骤 2 - 3 - 4,直到条件不成立,跳出循环
练习 :
1. 输出 1-100之间的数字
2. 计算 1-100之间所有数字的和
3. 输出 1-100之间所有3的倍数
2. do-while循环
do{
//循环体
}while(循环条件);
执行流程 :
1. 定义循环变量
2. 执行do操作,循环体
3. 循环体中更新循环变量
4. 判断循环条件,决定是否继续执行循环体
特点 :
do-while循环不管条件是否成立,都至少执行一次
循环体
练习 :
循环接收用户输入,并在控制台中输出;
直到用户输入“exit”,结束循环
练习2 :
使用while循环改版日期计算器
3. for循环
for(定义循环变量;循环条件;更新循环变量;){
//循环体
}
et :
for(var i = 1;i < 101; i ++){
console.log(i);
}
for循环与while循环 :
1. 循环的执行流程相同
2. for循环常用于确定循环次数的场合
while循环常用于不确定循环次数的场合
4. 循环控制
1. continue 跳出本次循环,开始下一次循环
2. break 结束循环,break后面的语句都不执行
练习 :
1. 判断素数(质数)
只能被1和自身整除的数是质数
接收用户输入的数字,判断是否为素数
2. 接收用户输入年月日,判断当日是星期几
参考 :已知 1990年1月1日是星期一
15 号 星期一
25 号 ?
3. 循环的嵌套
可以再循环中再次嵌套其他循环
for(var i = 0; i < 10; i ++){
for(var j = 0; j < 10 ; j ++){
}
}