JavaScript流程控制语句和常用特殊语句

1.流程控制语句

(1)if判断
if语句块的语法形式:

<script type="text/javascript">
	if(//条件1){
		//条件1成立,要执行的语句块;
	}else if(//条件2){
		//条件2成立,要执行的语句块;
	}else{
		//条件1、条件2都不成立,要执行的语句块;
	}
	//其中只要有一条条件成立 则不会执行以后的语句块
</script>

(2)switch判断
switch语句的语法形式如下:

<script type="text/javascript">
	switch(//表达式){
	case /*值1*/:/*执行的语句块*/;break;
	case /*值2*/:/*执行的语句块*/;break;
	case /*值3*/:/*执行的语句块*/;break;
	default:/*执行的语句块*/
	}
	//default相当于else;break表示终止,否则会一直执行到switch结尾
</script>

(3)while循坏 和 do while循坏
while循坏的语法格式如下:

<script type="text/javascript">
	while(//循环条件){
		//循环体语句块;
	}
	//先判断循环条件,再进行循环体语句;即循环体条件不成立,循环体语句不会执行
</script>

do while循坏的语法格式如下:

<script type="text/javascript">
	do{
		//循环体语句块;
	}while(//循环条件)
	//先进行循环体语句,再判断循环条件;即循环体条件不成立,循环体语句也会执行一次;
</script>

两者区别: while先判断后执行、循环体语句可能一次都不执行,do while是先执行后判断,所以循环语句至少执行一次。
(4)for循坏 和 for in循坏
for循坏的语法格式如下:

<script type="text/javascript">
	for(//表达式1;表达式2;表达式3){
		//循环体语句块;
	}
	//表达式1用于初始化 var i = 0;
	//表达式2用于循环条件 i<10;
	//表达式1用于更新循环体变量 i++;
</script>

提示: 当循环次数确定的情况下一般使用for循环。相比while和do while语法更简洁。
(5)for in循坏
for in循坏的语法格式如下:

<script type="text/javascript">
	for(//变量 in 对象){
		//循环体语句块;
	}
</script>

作用: 1.遍历数组中所有数组元素。2.遍历JavaScript对象的所有属性。
示例:

<script type="text/javascript">
	var arr = new Array();
	arr[0]=1;
	arr[2]=2;
	arr[3]="abc";
	arr[4]=true;
	for(var index in arr){
		document.write(arr[index]+"</br>")
	}
	for(var properties in navigator){
		document.write("属性:"+properties+",属性值:"+navigator[properties]+"</br>")
	}
</script>
JavaScript提供了break和continue来改变循环的控制流

break的用法:

<script type="text/javascript">
	var i = 0;
	for(i=0;i<=5;i++){
		if(i==4){
			break;//终止循环
		}
		document.write("这个数字是:"+i+"</br>");
	}

	这个数字是:0
	这个数字是:1
	这个数字是:2
	这个数字是:3
</script>

continue的用法:

<script type="text/javascript">
	var i = 0;
	for(i=0;i<=5;i++){
		if(i==4){
			continue;//结束本次循环;进行下一次循环
		}
		document.write("这个数字是:"+i+"</br>");
	}

	这个数字是:0
	这个数字是:1
	这个数字是:2
	这个数字是:3
	这个数字是:5
</script>

总结: break直接终止循环,continue结束本次循环而直接进入下一次循环。

2.常用特殊语句

语句是JavaScript的基本执行单位,每条语句都是以分号结束,语句除了赋值语句、运算符语句等语句以外,还有一些常用的特殊语句。介绍如下:
1.语句块
其实就是用 {} 包裹的一些js代码而已,当然语句块不能独立作用域。

<script type="text/javascript">
{ // 语句块
    标签1: function test1(){return "hehe"};
    标签2: var test2 = function(){return "hehe"};
}
</script>

独立作用域的写法

<script type="text/javascript">
	(function () {
	    // 功能块代码...
	})();
	//自调用函数,不仅可以独立作用域,还可以在 UglifyJS,Closure Compressor 等工具编译的时候更加优化。
</script>

2.空语句
在JavaScript中,当希望多条语句被当做一条语句使用时,使用复合语句来替代。空语句(empty statement)则恰好相反,它允许包含0条语句;
JavaScript解释器执行空语句时不会执行任何动作。但当创建一个具有空循环体的循环时,空语句是有用的
在下面这个循环中,所有的操作都在表达式a[i++]=0中完成,这里并不需要任何循环体。然而JavaScript需要循环体中至少包含一条语句,因此,这里只使用了一个单独的分号来表示一条空语句

//初始化一个数组a
for(i = 0; i < a.length; a[i++] = 0);
//在for、while循环或if语句的右圆括号后的分号很不起眼,这可能造成一些bug,而这些bug很难定位到
//因为;的多余,造成与预想不同的结果
if((a == 0) || (b == 0));
0 = null;
//如果有特殊目的需要使用空语句,最好在代码中添加注释,这样可以更清楚地说明这条空语句是有用的
for(i = 0; i < a.length; a[i++] = 0)/*empty*/;

3.异常抛出语句
JavaScript 拥有当错误发生时提供错误信息的内置 error 对象。error 对象提供两个有用的属性:name 和 message。

<script type="text/javascript">
{
	for(var i=0;i<10;i++){
		document.write("这个数字是:"+i+"</br>");
		if(i==4){
			throw new Error("报错啦");
		}	
	}
}
</script>

4.异常捕捉语句
try 语句使您能够测试代码块中的错误。
catch 语句允许您处理错误。只能使用一次
finally 语句允许您在 try 和 catch 之后执行代码,无论结果发生错误。

<script type="text/javascript">
try{
	var age=5;
	if(age==5){ 
		throw new Error("年龄太小啦")
	}
}catch(e){//e是异常的封装对象
	document.write("出错:"+e.message);
}finally{
	document.write("总会执行的finally块");
}
</script>

5.with语句
with 语句用于设置代码在特定对象中的作用域。

<script type="text/javascript">
with(document) {
  write("输出第一行数据</br>");
  write("输出第二行数据</br>");
  write("输出第三行数据</br>");
}
//等于
  document.write("输出第一行数据</br>");
  document.write("输出第二行数据</br>");
  document.write("输出第三行数据</br>");
</script>

提示: with 语句是运行缓慢的代码块,尤其是在已设置了属性值时。大多数情况下,如果可能,最好避免使用它。

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值