1. 条件语句
根据条件结果去执行,符合条件就执行,不符合就不执行
1.1 if语句
1. if (条件){执行代码}
//实例:小时数大于6点就是早上好
//(1)得到当前的小时数
var h = new Date().getHours();
// alert(h);
// (2)判断是否大于6点
/* if (h >= 6) {
alert("早上好");
} */
注释:先执行条件判断,条件判断为true是执行代码,否则什么都不干。【只选对的】
2. if(条件){执行代码1}else{执行代码2}
/* if (h > 12) {
alert("下午好");
} else {
alert("早上好");
} */
注释:先执行条件判断,条件判断为true是执行代码1,否则执行代码2。【2选1】
3. if(条件1){执行代码1}else if(条件2){执行代码2}......
if (h >= 6 && h < 11) {
alert("上午好");
} else if (h >= 11 && h < 13) {
alert("中午好");
} else if (h >= 13 && h <= 18) {
alert("下午好")
} else {
alert("晚上好");
}
注释:先执行条件1判断,条件1判断为true是执行代码1,否则执行条件2判断,条件2判断为true是执行代码2......【多选1】
4.if语句的嵌套
1.2 switch语句
/* 格式: switch (条件) {
case 常量1: 执行代码块 1;[break;]
case 常量2: 执行代码块 2;[break;]
.....
case 常量n: 执行代码块 n;[break;]
default: 剩下的
} *
注释:先条件,条件与常量1比较,相等执行常量1关联的的代码块 1,
不相等,条件与常量2比较,相等执行常量2关联的的代码块 2,
.....
都不相等,执行剩下的
注意:常量关联的的代码块后面有没有break,有就执行结束,
没有就忽略比较,执行常量关联的的代码块,追到碰见break。
//实例:击下面的按钮来显示今天是周几
function getDay() {
// 1. 得到星期几的具体数据值
var day = new Date().getDay();
// 2. 通过switch 语句判断
switch (day) {
case 1: alert("今天星期一"); break;
case 2: alert("今天星期二"); break;
case 3: alert("今天星期三"); break;
case 4: alert("今天星期四"); break;
case 5: alert("今天星期五"); break;
case 6: alert("今天星期六"); break;
default: alert("今天星期天"); break;
}
}
<input type="button" value="显示今天是星期几" onclick="getDay()" ;>
2. 循环语句
2.1 for - 循环代码块一定的次数
/* 格式: for(语句1;语句2;语句3){
被执行的代码块
} */
注释:语句 1--初始条件
语句 2--判断条件
语句 3--循环增量/减量 【控制初始条件值】
先执行初始条件,后执行判断条件,
判断条件true执行 被执行的代码块 执行,执行循环增量/减量,继续执行判断条件
判断条件false结束
//实例1:循环输出1-10的整数
/* for (var i = 1; i <= 10; i++) {
alert(i);
}
*/
// 实例2:循环输出10 - 1的整数
/* for (var i = 10; i >= 1; i--) {
alert(i);
} */
遍历数组-- - 将数组中的数据值逐个取出--数组名称[下标]--从0开始
// 1. 准备数组
var arr = ["zhangsan", "lisi", "wangwu"];
// 2.for 循环遍历数组
for (var i = 0; i < arr.length; i++) {
alert(arr[i]);
} //数组的 length属性--得到数组中的元素个数(数组名称.length)
//数组名称[下标]得到数组值
2.2 for/in - 循环遍历对象的属性名称/遍历数组
(1) for/in---遍历数组得到数组下标、数组值
/* 格式: for (var 变量 in 数组) {
} */
/* 实例:
var arr = ["zhangsan", "lisi", "wangwu"];
for (var index in arr) {
//alert(index); index变量保存的是数组下标
alert(arr[index]); 数组中取出来的数据值
}
*/
(2) for/in---遍历对象的属性名称
/* 格式: for (var 变量 in 对象) {
} */
/* //实例:
var obj = { name: "zhangsan", age: 23, address: "西安" };
for (var myname in obj) {
alert(myname); myname变量保存的是属性名称
}
*/
(3) forEach(function(index,element){ });
forEach(function(index,element){ }); 是个方法,适用数组,不适用对象
//实例:
/* var arr = ["zhangsan", "lisi", "wangwu"];
arr.forEach(function (index, element) {
//alert(element); //得到下标
alert(index); //得到数组中的数据值
}); */
2.3. while
while - 当指定的条件为 true 时循环指定的代码块
/* 格式: while (判断条件) {
被循环执行的代码
} */
注释:先执行判断条件,true--执行{被循环执行的代码}--判断条件
false---结束循环
与for循环比较,没有初始条件,和循环增量/减量条件
(1)初始条件需要在循环结构之外手动定义
(2)循环增量/减量条件需要在循环结构中手动定义
/* //实例:循环输出1-10的整数
var i = 1; //初始条件
while (i <= 10) {
alert(i);
i++; //循环增量
}
*/
2.4. do/while
do/while - 同样当指定的条件为 true 时循环指定的代码块
/* 格式: do {
被循环执行的代码
} while (判断条件) ;
*/
注释:先执行被循环执行的代码,再执行判断条件
true--执行{被循环执行的代码}--判断条件
false---结束循环
与for循环比较,没有初始条件,和循环增量/减量条件
(1)初始条件需要在循环结构之外手动定义
(2)循环增量/减量条件需要在循环结构中手动定义
//实例:循环输出10-1的整数
/* var i = 10;
do {
alert(i);
i--;
} while (i >= 1); */
与while循环比较:
while---先判断后循环
do...while---先循环后判断
初始判断条件为false时,do...while比while多执行一次
/* while (false) {
alert("while循环");
} 不会执行 */
/* do {
alert("do...while循环");
} while (flase) 执行1次 */
明确知道自己需要循环多少次的时候使用for循环
不知道需要循环多少次的时候使用while循环/do...while()
3. break 和 continue 语句
break---中断 语句用于跳出/结束循环、switch语句中结束switch。
switch语句中出现break时,忽略比较,执行常量关联的的代码块
for (var i = 1; i <= 10; i++) {
alert(i);
if (i == 5) {
break;
}
}
continue -- 继续--循环中,结束当前,进入下次
for (var i = 1; i <= 10; i++) {
if (i == 5) {
continue;
}
alert(i);
}
4. JavaScript 错误处理
程序出现错误是正常现象,就像人会生病
try和catch
/* 语法格式:
try {
...//异常的抛出
} catch (e) {
...//异常的捕获与处理
} finally {
...//结果处理
} */
注释:try{}---包围可能出现错误的代码
catch(e) {}--e[错误对象]/{}--捕获与处理错误
finally{}--一般出现在catch(e){}后面,有误错误都执行,也可以不用写
function testError() {
try {
var str = "try 和 catch";
updateButton(str);
} catch (eobj) {
alert(eobj.name); //ReferenceError
alert(eobj.message); //updateButton is not defined
} finally {
alert("有无错误都执行");
}
}
<input type="button" value="测试try 和 catch finally" onclick="testError();" />
5. throw语句
throw 语句允许我们创建自定义错误,并抛出
在某些情况下出现错误比不出现错误更好
function createArray(size) {
try {
if (size < 0) {
throw "数组大小不能为负数";
} else {
var arr = new Array(size);
alert(arr.length);
}
} catch (eobj) {
alert(eobj);
}
}
<input type="button" value="创建数组" onclick="createArray(-5);" />
6. href="#"与href="javascript:void(0)"的区别
# 包含了一个位置信息,默认的锚是#top 也就是网页的上端。
而javascript:void(0), 仅仅表示一个死链接。
在页面很长的时候会使用 # 来定位页面的具体位置,格式为:# + id。
如果你要定义一个死链接请使用 javascript:void(0) 。