顺序结构:按照由上到下的顺序一行一行地执行的程序结构
分支结构:根据不同的条件判断来决定程序执行走向的结构(也叫选择结构)
循环结构:需要重复执行同一操作的程序结构称为循环结构。
if 判断逻辑语句
if(true){
//会执行的语句
}
if(false){
//会跳过不执行的语句
}
if(判断条件){ //当if括号中结果为true时执行语句1,否则执行语句2
//语句1
}else{
//语句2
}
if(判断条件1){ //当条件1结果为true时执行语句1
//语句1
}else if(判断条件2){ //当条件1结果为false而且条件2结果为true时执行语句2
//语句2
}else{ //当条件1条件2结果都为false时执行语句3
//语句3
}
我们都知道,if括号中只需要布尔类型值。那么在if判断中,所有的数据类型都会被隐式转换为布尔类型。
注意:0、-0、null、""、false、undefined 或者 NaN在if条件里结果为false
隐式类型转换
除了+运算符具有两层含义以外,- * /只有数学意义,所以当进行- * /运算的时候默认会将运算符两侧的数据类型隐式转换为数字类型,再进行运算。
var a = 2, b = "2";
if(a == b){
alert("a和b相等"); // 会弹
}
if(a === b){
alert("a和b相等"); // 不会弹
}
if(1 == true){
alert("数字1是true");
}
if(a = b){
alert("a和b相等");
}
//一个等号代表赋值操作,结果为等号右边的值
switch case多分支语句
switch(语句){ //语句的结果与每一条case内容进行匹配
case 1:
alert(1);
break;
case 2:
alert(2);
break;
case 3:
alert(3);
break;
default:
alert(0);
}
注意switch的应用场景(有多个确定值需要判断的时候);
注意case穿透,要加break语句(如果程序没有发现break语句,那么解析器会继续向下解析);
var a = 1;
switch(a){
case 1:
alert(1);
case 2:
alert(2);
case 3:
alert(3);
default:
alert(0);
}
//每一个alert都会被执行,而且alert会阻断程序进程
练习
1.判断一个整数,属于哪个范围:大于0;小于0;等于0
2.判断一个整数是偶数还是奇数,并输出判断结果
3.开发一款软件,根据公式(身高-108)*2=体重,可以有10斤左右的浮动。来观察测试者体重是否合适
4.判断一个三位数是否是水仙花数(如:153 = 1^3 + 5^3 + 3^3,那么153就是水仙花数)
练习
1.点击切换div颜色
2.输入分数,判定成绩等级
3.输入年份,计算某一年是否是闰年
4.输入月份,显示当月的天数,要求:利用case穿透简化代码
5.输入数字,显示星期几,如:输入0,弹出星期日,以此类推(两种方法)
6.设计一个猜拳游戏:
假设: 1代表石头 2代表剪刀 3代表 布
计算机每次随机出现1—3中的任意一个数(parseInt (Math.random()*3) + 1)
玩家也有三种状态,用玩家出的数和计算机出的数进行比对,按照游戏规则比出胜负。
练习
1.根据一个数字日期,判断这个日期是这一年的第几天
例如: 20160211,计算后结果为42
2.制作一个表单,包括用户名,密码,电话
要求:
1)做好看点
2)点击保存按钮时,使用JS判断用户的联系电话是否为纯数字,如果用户输入有错误,使用alert()弹框警告
3)判断用户名是否填写,如果空白,使用alert弹框警告
4)判断密码长度,必须大于8位,否则alert警告
提示:通过length属性取得字符串的长度
var str = "hello";
str.length // 得到长度