1.JavaScript条件语句
条件语句就是根据条件结果去执行,符合条件就执行,不符合条件就不执行
1.1if语句
格式1:if(条件){执行代码};
先执行条件,条件判断为turn则执行代码,否则什么都不干(只选对的)
var h = new Date().getHours(); //得到当前的小时数
//也可自己声明当前小时数
// var h=19
if (h >= 18) { //条件是大于等于18点
alert("晚上好"); //执行代码
}
格式2:if(条件){执行代码1}else{执行代码2};
先执行条件判断,条件判断为turn时执行代码1,否则执行代码2(二选一)
var h = new Date().getHours(); //得到当前的小时数
if (h >= 7 && h <= 11) { //条件小时数大于等于7并且小于等于11
alert("早上好");
} else {
alert("下午好");
}
格式3:if(条件){执行代码1}else if(条件){执行代码2}else{执行代码3};
先执行条件判断,条件判断为turn时执行代码1,否则执行代码2,条件2判断为true是执行代码2,否则执行代码3(多选一)
var h = new Date().getHours(); //得到当前的小时数
if (h >= 6 && h < 12) {
alert("上午好");
} else if (h >= 12 && h < 18) {
alert("下午好");
} else {
alert("晚上好");
}
当前时间是19点
格式4:if语句的嵌套
一般最多嵌套两层
if (false) {
if (false) {
alert("true,true");
} else {
alert("true,false");
}
} else {
if (true) {
alert("false,turn");
} else {
alert("falst,falst");
}
}
1.2switch语句
// 格式
/* Switch(条件){
case 常量1:(执行代码1);break;
case 常量2:(执行代码2);break;
case 常量n:(执行代码n);break;
default:剩下的执行代码
}*/
举例
var day1 = new Date().getDay(); //得到今天周三
switch (day1) {
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("周末")
}
2.JavaScript 循环
2.1for 循环
格式:
for (语句 1; 语句 2; 语句 3){
被执行的代码块
}
语句1--表示初始条件
语句2--表示判断条件
语句3--表示循环增量/减量(控制初始条件值)
先执行初始条件,后执行判断条件,
判断条件true时执行 被执行的代码块 执行,执行循环增量/减量,继续执行判断条件
判断条件false结束
// 举例循环输出1-10的整数
// 初始条件为1;判断条件为小于或等于10;循环增量为每次循环加一
for (var i = 1; i <= 10; i++) {
alert(i);
}
遍历数组---将数组中的数据值逐个取出--数组名称[下标]--从0开始
var arr1 = ["xian", "beijing", "shanghai"]
for (var i1 = 0; i1 < arr1.length; i1++) {
alert(arr1[i1]);
}
2.2for / in -循环遍历对象的属性名称 / 遍历数组
格式:for(var 变量 in 数组/对象){}
for / in--遍历数组得到数组[下标]
var arr1 = ["xian", "beijing", "shanghai"];
for (var xiabiao1 in arr1) {
alert(arr1[xiabiao1]);
}
for/in---遍历对象的属性名称
var obj1 = { //对象
name: "wngxiao",
age: 20,
address: "北京"
};
for (var obj2 in obj1) {
alert(obj2);
}
forEach(function(index, element) {});方法
var arr = ["zhangsan", "lisi", "wangwu"];
arr.forEach(function(element) {
alert(element);
})
2.3while 循环会在指定条件为真时循环执行代码块
语法格式
while (条件){
需要执行的代码
}
先执行判断条件
true--执行{被循环执行的代码}--判断条件
false---结束循环
for循环比较,没有初始条件,和循环增量/减量条件
1.初始条件需要在循环结构之外手动定义
2.循环增量/减量条件需要在循环结构中手动定义
// 初始条件
var num1 = 10
while (num1 >= 1) {
alert(num1);
// 循环减量条件
num1--
}
2.4do/while 循环
语法格式:
do{
需要执行的代码
}while (条件);
先执行被循环执行的代码,在执行判断条件
true--执行{被循环执行的代码}--判断条件
false---结束循环
与for循环比较,没有初始条件,和循环增量/减量条件
1.初始条件需要在循环结构之外手动定义
2.循环增量/减量条件需要在循环结构中手动定义
循环输出10-1的整数
var num2 = 10; //初始条件
do {
alert(num2);
num2--; //循环减量条件
} while (num2 >= 1); //判断条件
与while循环比较
while---先判断后循环
do...while---先循环后判断
初始判断条件为false时,do...while比while多执行一次
明确知道自己需要循环多少次的时候使用for循环
不知道需要循环多少次的时候使用while循环/do...while()
2.3.JavaScript break 和 continue 语句
break---表示中断/跳出循环
语句用于跳出/结束循环、switch语句中结束switch。
switch语句中出现break时,忽略比较,执行常量关联的的代码块
// 输出10-1的整数时,到8就结束
for (var i1 = 10; i1 >= 1; i1--) {
alert(i1);
if (i1 == 8) {
break;
}
}
continue -- 表示继续--循环中,结束当前,进入下次
//continue -- 表示继续--循环中,结束当前,进入下次
// 输出10-1的整数时,跳过7
for (var i2 = 10; i2 >= 1; i2--) {
if (i2 == 7) {//不显示7直接跳到6
continue;
}
alert(i2);
}
3.JavaScript 错误
当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错误。
可能是语法错误,通常是程序员造成的编码错误或错别字。
可能是拼写错误或语言中缺少的功能(可能由于浏览器差异)。
可能是由于来自服务器或用户的错误输出而导致的错误。
当然,也可能是由于许多其他不可预知的因素。
3.1JavaScript try 和 catch
try 语句允许我们定义在执行时进行错误测试的代码块。
catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。
JavaScript 语句 try 和 catch 是成对出现的
语法格式:
try {
... //异常的抛出
} catch(e) {
... //异常的捕获与处理
} finally {
... //结束处理
}
try{}---包围可能出现错误的代码
catch(e) {}--e[错误对象]/{}--捕获与处理错误
finally{}--一般出现在catch(e){}后面,有无错误都执行,也可以不用写
function test1() {
//用太try包裹住这个可能出现错误的代码
//包裹后控制台不会显示错误
try {
adcsdcsd("beijing");
} catch (e) {
alert(e.name);//返回错误名
alert(e.message);//返回错误消息
} finally {
alert("有无错误都执行");
}
}
3.2Throw 语句
throw 语句允许我们创建自定义错误。
正确的技术术语是:创建或抛出异常(exception)
function createArray(size) {
try {
if (size < 0) {
throw "数组大小不能为负数";
} else {
var arr = new Array(size);
alert(arr.length);
}
} catch (eobj) {
alert(eobj);
}
}
4.javascript:void(0)
javascript:void(0) 中最关键的是 void 关键字, void 是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值
href="#"与href="javascript:void(0)"的区别
# 包含了一个位置信息,默认的锚是#top 也就是网页的上端。
而javascript:void(0), 仅仅表示一个死链接。
在页面很长的时候会使用 # 来定位页面的具体位置,格式为:# + id。
如果你要定义一个死链接请使用 javascript:void(0)
<a href="#">链接</a>
<a href="javascript:void(0)">死连接</a>