IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JavaScript总结(3) -> 正文阅读

[JavaScript知识库]JavaScript总结(3)

一.JavaScript条件语句

脚本的威力体现在它们可以根据人们给出的各种条件做出决策,javascript使用条件语句来做判断

条件语句(conditianal statement)通过判断表达式的值来决定执行还是跳过某些语句,包括if语句和switch语句

在 JavaScript 中,我们可使用以下条件语句:

if语句:

if- 只有当指定条件为 true 时,使用该语句来执行代码

if...else 语句?- 当条件为 true 时执行代码,当条件为 false 时执行其他代码

if...else if....else 语句- 使用该语句来选择多个代码块之一来执行

if..else嵌套语句

switch语句:

switch 语句?- 使用该语句来选择多个代码块之一来执行

1.if语句

if语句是最常见的条件语句。if语句的条件必须放在if后面的圆括号内,条件的求值结果永远是一个布尔值,即只能是true或false。花括号中的语句,不管它们有多少条,只有在给定条件的求值结果是true的情况下才会执行

格式:? ?if(条件){执行代码}

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>if语句</title>
		<script type="text/javascript">
		var num=5;//赋值
			if(10>num){//判断值是否为true
				alert("小于");//如果为true,则执行代码
			}
		</script>
	</head>
	<body>
	</body>
</html>

?

2.if...else 语句

格式:??if(条件){执行代码1}else{执行代码2}

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>if else 语句</title>
		<script type="text/javascript">
			var h = new Date().getHours();//提取现在值
			if (h < 12) {//判断
				alert("早上好!");//为true时
			}else{
				alert("下午好!");//为false时
			}
		</script>
	</head>
	<body>
	</body>
</html>

?

3.if...else if....else 语句

格式:??if(条件1){执行代码1}else if(条件2){执行代码2}......

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>条件语句</title>
		<script type="text/javascript">
			var mon=new Date().getMonth();//取值
			h=mon+1;
				if (h >= 1 && h < 4) {//判断
					alert("春季");//为true时
				} else if (h >= 4 && h < 7) {//为false时,继续判断
					alert("夏季");//为true时
				} else if (h >= 7 && h < 10) {//为false时,继续判断
					alert("秋季");//为true时
				} else {
					alert("冬季");//为false时
				}
		</script>
	</head>
	<body>
	</body>
</html>

?

4.if..else嵌套语句

当在if/else语句中嵌套使用if语句时,必须注意确保else语句匹配正确的if语句

格式:

if(false){
				if(false){
					alert("true  true");
				}else{
						alert("true  false");
				}
			}else{
				if(true){
					alert("false  true  ");
				}else{
						alert("false  false  ");
				}
			}

例子:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>if 嵌套</title>
		<script type="text/javascript">
			var h = new Date().getHours(); //提取现在的时间值
			var day = new Date().getDay(); //提取星期值
			if (day > 5) { //判断
				alert("周末"); //为true时
				if (h < 12) { //判断
					alert("早上好!"); //为true时
				} else {
					alert("下午好!"); //为false时
				}
			} else {
				alert("周内"); //为false时
				if (h < 12) { //判断
					alert("早上好!"); //为true时
				} else {
					alert("下午好!"); //为false时
				}
			}
		</script>
	</head>
	<body>
	</body>
</html>

?第一个值

?第二个值

5.switch 语句

当所有的分支都依赖于同一个表达式的值时,else if并不是最佳解决方案。

在这种情况下,重复计算多条if语句中的条件表达式是非常浪费的做法,而switch语句正适合处理这种情况

switch语句执行一个多路分支,首先计算expression的值,然后查找case子句的表达式是否和expression的值相同。如果找到匹配的case,那么将会执行这个case对应的代码块。如果找不到匹配的case,那么将会执行default标签中的代码块。如果没有default标签,switch语句将跳过它的所有代码块。

格式:

switch(条件) {

? ? ?case 常量1: 执行代码块 1 ;[break;]

? ? ?case 常量2: 执行代码块 2 ;[break;]

? ? ?.....

? ? ?case 常量n: 执行代码块 n ;[break;]

? ? ?default: 剩下的

}

?

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>switch语句</title>
		<script type="text/javascript">
		var day=new Date().getDay();
			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;
			}
		</script>
	</head>
	<body>
	</body>
</html>

?

使用switch语句时,要注意以下几点:

  【1】由于每次执行switch语句时,并不是所有的case表达式都能执行到,因此,应该避免使用带有副作用的case表达式,比如函数调用表达式和赋值表达式,最安全的做法是在case表达式中使用常量表达式

  【2】default标签一般都出现在switch的末尾,位于所有case标签之后,当然这是最合理也是最常用的写法,实际上,default标签可以放置在switch语句内的任何地方

  【3】switch语句中,对每个case的匹配操作实际上是'==='恒等运算符比较,而不是'=='相等运算符比较,因此,表达式和case的匹配并不会做任何类型转换

二.JavaScript 循环

条件语句把javascript中的代码变成一条条的分支路径,而循环语句(looping statement)就是程序路径的一个回路,可以让一部分代码重复执行。

它们的工作原理几乎一样:只要给定条件仍能得到满足,包含在循环语句里的代码就将重复地执行下去。一旦给定条件的求值结果不再是true,循环也就到此为止。

JavaScript 支持不同类型的循环:

for?- 循环代码块一定的次数

for...in?- 循环遍历对象的属性

while?- 当指定的条件为 true 时循环指定的代码块

do...while?- 同样当指定的条件为 true 时循环指定的代码块

1.for

for 循环是您在希望创建循环时常会用到的工具。

for语句提供了一种比while语句更加方便的循环控制结构,用for循环来重复执行一些代码的好处是循环控制结构更加清晰

格式:

for (语句 1;?语句 2;?语句 3){

? ? ? ?被执行的代码块

}

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>for循环语句</title>
		<script type="text/javascript">
			for (var i = 1; i <= 10; i++) {//循环【当i的值小于10时,则使i的值i++,再次循环】
				alert(i);//输出
			}
		</script>
	</head>
	<body>
	</body>
</html>

2.for...in

for/in语句也使用for关键字,但它和常规的for循环是完全不同的一类循环

格式:for(var 变量 in 数组/对象){被执行的代码块}

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>for in语句</title>
		<script type="text/javascript">
			var obj = { //对象
				name: "zhnagsan",
				age: 23,
				address: "西安"
			};
			for (var myname in obj) {
				alert(myname); //输出对象中的属性
			}
		</script>
	</head>
	<body>
	</body>
</html>

3.while

while语句属于前测试循环语句,也就是说,在循环体内的代码被执行之前,就会对出口条件求值

格式:?

while(判断条件){

? ? ? ? 被循环执行的代码

}

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>while 循环</title>
		<script type="text/javascript">
			var i = 1; // 初始条件
			while (i <= 10) {//判断
				alert(i);//输出代码
				i++;//递增
			}
		</script>
	</head>
	<body>
	</body>
</html>

4.do...while

do while语句是后测试循环,即退出条件在执行循环内部的代码之后计算。这意味着在计算表达式之前,至少会执行循环主体一次

格式:

do{

? ??被循环执行的代码

}while(判断条件);

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>do while语句</title>
		<script type="text/javascript">
			var i = 1; // 初始条件
			do {
				alert(i); //执行的代码
				i++; //递增
			} while (i <= 10) //判断
		</script>
	</head>
	<body>
	</body>
</html>

do/while循环和普通的while循环有两点语法方面不同:

  【1】do/while循环要求必须使用关键字do来标识循环的开始,用while来标识循环的结尾并进入循环条件判断

  【2】do/while循环用分号结尾。如果while循环体使用花括号括起来,则while循环也不用使用分号做结尾

三.JavaScript 跳转语句

跳转语句(jump statement)可以让解释器跳转到程序的其他部分继续执行,包括break、continue和return语句

1.break语句

单独使用break语句的作用是立即退出最内层的循环或switch语句

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>break</title>
		<script type="text/javascript">
			for (var i = 1; i <= 10; i++) {//初始值,判断,递增
				alert(i);//执行代码
				if (i == 5) {//当值为5时
					break;//终止
				}
			}
		</script>
	</head>
	<body>
	</body>
</html>

2.continue语句

continue语句和break语句非常类似,但它不是退出循环,而是转而执行下一次循环

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>continue</title>
		<script type="text/javascript">
			for (var i = 5; i >= 0; i--) {//初始值,判断,递减
				if (i == 2) {//当值为5时
					continue;//终止
				}
				alert(i);//执行代码
			}
		</script>
	</head>
	<body>
	</body>
</html>

3.return语句

函数调用是一种表达式,而所有表达式都有值。函数中的return语句就是指定函数调用后的返回值

四.?JavaScript?错误

当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错误。

可能是语法错误,通常是程序员造成的编码错误或错别字。

可能是拼写错误或语言中缺少的功能(可能由于浏览器差异)。

可能是由于来自服务器或用户的错误输出而导致的错误。

当然,也可能是由于许多其他不可预知的因素。

当错误发生时,当事情出问题时,JavaScript 引擎通常会停止,并生成一个错误消息。

描述这种情况的技术术语是:JavaScript 将抛出一个错误。

1.JavaScript try 和 catch

try?语句允许我们定义在执行时进行错误测试的代码块。

catch?语句允许我们定义当 try 代码块发生错误时,所执行的代码块。

JavaScript 语句?try?和?catch?是成对出现的。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>try catch</title>
		<script>
			var txt = "";
			function message() {
				try {
					adddlert("Welcome guest!");
				} catch (err) {
					txt = "本页有一个错误。\n\n";
					txt += "错误描述:" + err.message + "\n\n";
					txt += "点击确定继续。\n\n";
					alert(txt);
				}
			}
		</script>
	</head>
	<body>
		<input type="button" value="查看消息" onclick="message()" />
	</body>
</html>

2.finally 语句

finally 语句不论之前的 try 和 catch 中是否产生异常都会执行该代码块。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>finally语句</title>
	</head>
	<body>
		<p>不管输入是否正确,输入框都会再输入后清空。</p>
		<p>请输入 5 ~ 10 之间的数字:</p>
		<input id="demo" type="text">
		<button type="button" onclick="myFunction()">点我</button>
		<p id="p01"></p>
		<script>
			function myFunction() {
				var message, x;
				message = document.getElementById("p01");
				message.innerHTML = "";
				x = document.getElementById("demo").value;
				try {
					if (x == "") throw "值是空的";
					if (isNaN(x)) throw "值不是一个数字";
					x = Number(x);
					if (x > 10) throw "太大";
					if (x < 5) throw "太小";
				} catch (err) {
					message.innerHTML = "错误: " + err + ".";
				} finally {
					document.getElementById("demo").value = "";
				}
			}
		</script>
	</body>
</html>

?

没有输出显示的是:值是空的?

输出的不是数字显示:值不是一个数字

输出比5小的,显示的是:太小

输出比10大的,显示的是:太大

3.Throw 语句

throw 语句允许我们创建自定义错误。

正确的技术术语是:创建或抛出异常(exception)。

如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Throw 语句</title>
	</head>
	<body>
		<p>请输出一个 5 到 10 之间的数字:</p>
		<input id="demo" type="text">
		<button type="button" onclick="myFunction()">测试输入</button>
		<p id="message"></p>
		<script>
			function myFunction() {
				var message, x;
				message = document.getElementById("message");
				message.innerHTML = "";
				x = document.getElementById("demo").value;
				try {
					if (x == "") throw "值为空";
					if (isNaN(x)) throw "不是数字";
					x = Number(x);
					if (x < 5) throw "太小";
					if (x > 10) throw "太大";
				} catch (err) {
					message.innerHTML = "错误: " + err;
				}
			}
		</script>
	</body>
</html>

?

五.JavaScript?变量提升

1.JavaScript?变量提升

JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。

JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。

声明提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>变量提升</title>
	</head>
	<body>
		<p id="demo"></p>
		<script>
			x = 5; // 变量 x 设置为 5
			elem = document.getElementById("demo"); // 查找元素 
			elem.innerHTML = x; // 在元素中显示 x
			var x; // 声明 x
		</script>
	</body>
</html>

??

2.JavaScript 初始化不会提升

JavaScript 只有声明的变量会提升,初始化的不会。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>初始值不会提升</title>
		
	</head>
	<body>
		<p id="demo"></p>
		
		<script type="text/javascript">
			var x = 5; // 初始化 x
			elem = document.getElementById("demo"); // 查找元素
			elem.innerHTML = x + " " + y;           // 显示 x 和 y
			var y = 7; // 初始化 y
		</script>
	</body>
</html>

?

六.javascript:void(0)

javascript:void(0)?中最关键的是?void?关键字,?void?是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>链接</title>
	</head>
	<body>
		<a href="#">空连接</a>
		<a href="javascript:void(0);">死链接</a>
	</body>
</html>

?

href="#"与href="javascript:void(0)"的区别

#?包含了一个位置信息,默认的锚是#top?也就是网页的上端。

而javascript:void(0), 仅仅表示一个死链接。

在页面很长的时候会使用?#?来定位页面的具体位置,格式为:# + id。

如果你要定义一个死链接请使用 javascript:void(0) 。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-02 11:15:56  更:2021-09-02 11:17:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 15:24:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码