复习 :
1. JS 引入方式
1. 元素事件绑定
onclick = "JS 语句"
2. <script>
JS 代码
</script>
3. 外部JS文件
<script src=""></script>
2. JS 数据类型
Number String Boolean undefined null
3. 数据类型转换
1. 自动类型转换
et :
"100" + "10" ; //"10010"
"100" + 10; //
"100" + true; //"100true"
"100" - 10; //90
"100" - true; //99
"100a" - 10; //NaN
2. 强制类型转换
1. number / boolean 转 string
toString()
et :
var num = 100;
num = num.toString();
2. string 转 number
1. Number()
et :
var s = "100";
s = Number(s);
var s1 = "100a";
s1 = Number(s1); //NaN
2. 解析数字
方法 :
parseInt() parseFloat()
et :
var s = "12.5a";
s = parseInt(s); //12
var s2 = "a12";
parseFloat(s2); //NaN
3. 运算符
1. 赋值运算符
2. 数学运算符 + - * / %
3. 自增和自减 ++ --
et :
var a = 10;
a --;
-- a; //8
var r = a --; //r=8,a=7
var r2 = -- a; // r2=6,a=6
4. 变量/常量
变量 var
常量 const
------------------------------
day 08
1. 运算符
1. 赋值运算符
2. 算数运算符
3. 自增自减运算符
4. 关系运算符(比较)
运算符 : > < >= <= ==(相等) !=(不想等)
===(恒等) !==(不恒等)
使用 :
关系运算符用来判断表达式之间的关系,判断结果为布尔值,
1. number之间的比较
根据数值比较大小或相等
10 > 5; // true
2. number与string之间的比较
会将string转换为number再进行比较
NaN与其他类型结合运算的结果都是NaN,关系运算中结果为
false
3. number 与 boolean
boolean值会转换为number :
true = 1
false = 0
再进行数值比较
4. string 与 string 比较
字符串之间的比较,根据每位字符的Unicode码值进行
比较,如果当前位码值相同,继续比较下一位字符
相等与恒等
相等 : 判断两个操作数值是否相等,包含自动类型转换
"10" == 10
恒等 : 判断操作数是否恒等,要求数据类型保持一致,值
相等,不会进行数据类型转换
"10" === 10
不等与不恒等
不等 : 值不相等,返回true
不恒等 : 值或数据类型只要有一个不同,返回true
5. 逻辑运算符
逻辑与 : &&
逻辑或 : ||
逻辑非 : !
使用 : 逻辑运算符主要用来结合条件表达式,返回结果是
布尔类型
1. 逻辑与 :
condition1 && condition2
两个条件都为真,结果为真
有一个为假,结果为假
et:
10 > 5 && "10" > "5" // true && false ->false
2. 逻辑或
条件1 || 条件2
只要有一个条件为真,结果为真
两个条件都为假,结果为假
3. 逻辑非
! 条件
对当前条件表达式的结果取反
非真即假,非假即真
et :
! 10;
任何非零数据,都为真
练习 :
1. 接收用户输入的年份,判断是否是闰年
闰年 : 能被400整除
能被4整除不能被100整除
2. 接收用户输入的字符(单个)
判断用户输入的字符
是英文吗
是中文吗
是数字吗
返回判断结果
6. 位运算符
位与 : &
位或 : |
异或 : ^
使用 :
对数据的二进制中的每一位进行操作
1. 位与 : 是每一位进行与操作,都为1,结果为1
et :
3 & 5;
011
& 101
------
001 -> 1
使用 :
任何数与数字1进行位与操作,结果为1, 表示操作数为
奇数,为0表示操作数为偶数.
判断奇偶 :
3 & 1 //011 & 001 = 001 1 奇数
2 & 1 //010 & 001 = 000 0 偶数
2. 位或 : 有1则1
3 | 5
011
| 101
------
111 -> 7
3. 异或 : 相同为0,不同为1
3 ^ 5
011
^ 101
------
110 -> 6
使用 :
异或可以在不借助中间变量的情况下,互换两个变量的值
练习 :
var a = 100,b = 200;
var c = a;
a = b; // a = 200;
b = c;
----------
var m = 3,n = 5;
m = m ^ n; //6
n = m ^ n; //6 ^ 5 -> 110 ^ 101 = 011 ->3
m = m ^ n; //6 ^ 3 -> 110 ^ 011 = 101 ->5
7. 三目运算符(三元运算符)
根据操作数的个数划分运算符
三目 : 有三个操作数
语法 :
表达式1 ? 表达式2 : 表达式3;
执行 :
1. 判断表达式1的结果 (true/false)
2. true : 执行表达式2,返回结果
3. false : 执行表达式3,返回结果
et :
var age = 30;
var res = age > 28 ? "人到中年不得已" : "还年轻,继续浪";
//res : ""
练习 :
1. 成绩判定 :
接收用户输入的成绩 score
score >= 90 返回"A"
score >=80,<90 返回"B"
score >=60,<80 返回"C"
score < 60 返回"D"
2. BMI 指数
接收用户输入的身高 (m)
接收用户输入的体重 (kg)
计算BMI指数 : bmi = weight / (height *height)
保留小数点后两位
bmi > 23.9 偏胖
bmi < 18.5 偏瘦
中间值 健康
2. 流程控制
1. 流程控制主要用来控制代码的执行顺序
2. 流程控制结构
1. 顺序结构
代码自上而下顺序执行
2. 分支结构
选择某一段代码执行
3. 循环结构
重复执行某一段代码
3. 分支结构(选择结构)
1. if 语句
1. 语法一 :
if(条件表达式){
条件成立时执行的代码
}
使用 :
1. {}可以省略,省略之后,if语句只控制后面的
第一条代码语句
2. 非零数据都为真,零为假
以下情况,条件都为假
if (0) {}
if ("") {}
if (0.0)
if (NaN)
if (null)
if (undefined)
2. 语法二 : if - else
if (){
条件成立时执行
} else{
条件不成立时执行
}
3. 多重分支 : if - else if ...
if (条件1) {
条件1成立时执行
}else if(条件2){
条件2成立时执行
}...else if(条件n){

}else{
//最终情况
}
练习 :
1. 判断成绩等级
2. 计算天数
由用户输入年 月 日
判断当日是该年的第几天
et :
2018 3 15
2. switch 语句
主要用来做值匹配,值恒等时,执行某段代码
语法 :
switch (变量){
case 值1 :
值匹配恒等,执行的操作
break; //结束匹配
case 值2 :
代码语句
break;
...
default :
//匹配失败之后默认执行的操作
break;
}
使用 :
1. switch 判断值,用的是恒等,要求数据类型和值
都相等才能匹配成功
2. case 用来列出所有可能的值,一旦与变量匹配恒等,
就执行当前case中的语句
3. default 表示匹配失败之后执行的操作,不用给值
一般写在末尾
4. break,表示跳出匹配,不再向后执行.
可以省略,省略之后,表示从当前匹配到的case
向后执行所有的代码语句,直至结束
5. case 可以共用代码语句,列出所有相关的情形,
共用一组执行语句 :
语法 :
case 值1:
case 值2:
case 值3:
...
case 值 :
代码语句
break;
练习 :
改版日期计算器
4. 循环结构
1. 循环三要素 :
循环变量;
循环条件;
循环体;
2. 分类 :
1. while 循环
1. 语法 :
定义循环变量;
while (循环条件){
循环体
更新循环变量
}
2. 流程 :
1. 定义循环变量
2. 判断循环条件
3. 条件成立,执行循环体
4. 更新循环变量(定义循环结束条件)
5. 重复2 - 3 - 4
2. do - while 循环
1. 语法 :
do {
循环体
}while(循环条件);
2. 流程 :
1. 定义循环变量
2. 执行循环体,更新循环变量
3. 判断循环条件,条件成立,重复2-3
条件不成立,结束循环
3. while 与 do-while的区别
1. while循环首先判断循环条件是否成立,
不成立不执行循环体
2. do-while循环首先执行一次循环体,再判断
循环条件,决定是否开始下一次循环.
无论条件是否成立,do-while都至少执行一次
循环体.
练习 :
1. 循环接收用户输入的数据,并在控制台输出,
直到用户输入"exit",跳出循环
2. 使用循环改版日期计算器
3. for 循环
1. 语法 :
for(初始化循环变量;定义循环条件;更新循环变量){
循环体
}
2. 流程 :
1. 初始化循环变量
2. 判断循环条件
3. 循环条件成立,执行循环体
4. 更新循环变量,重复2 - 3 - 4,直至跳出
3. for 循环与while循环比较 :
1. for与while 循环,执行流程相同,书写语法不同
2. for循环更常见于确定循环次数的场合
while循环更适用于不确定循环次数的场合
4. 循环控制
1. break
表示结束循环,不管还有多少次
2. continue
表示跳出本次循环,开始下一次循环
5. 循环嵌套
在循环体中嵌套其他的循环
et :
控制台输出图案
*
**
***
****
*****
每行的行数等于星星数
作业 :
1. 输出1-100之间所有的素数
只能被1和自身整除的数
2. 接收用户输入的年月日,
判断当日是星期几
已知 : 1990-01-01是星期一
3. 图案 :
*
***
*****
*******
*********
4. 控制台输出99乘法表