news 2026/5/1 9:07:13

JavaScript学习笔记 (二):流程控制、函数与自定义函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JavaScript学习笔记 (二):流程控制、函数与自定义函数

五、JS的三大流程控制:顺序控制、分支控制、循环控制

1、顺序控制:不控制其流程,就是顺序执行。

2、分支控制

①单分支

if(条件表达式){

语句

}

②双分支

if(条件表达式){

语句1

}else{

语句2

}

③多分支

if(条件表达式1){

语句1

}elseif(条件表达式2){

语句2

}elseif(条件表达式3){

语句3

}…………….

…….

强调一点:一旦找到一个满条件的入口,执行完毕后,就直接结束整个多分支流程

④switch多分支控制

switch(表达式){

case 常量1://常量可以是字符串,也可以是数值

语句1;

break; //break的作用是跳出整个switch

case 常量2:

语句2;

break;

case 常量n:

语句n;

break;

default://default可有可无

语句;

break;//最后一个break可有可无

}

总结:

JS的switch语句数据类型可以是JS支持的任何类型(数组和对象不考虑)

case 后面的值的数据类型可以是任意的,可以混杂使用

break作用是跳出整个switch

如果没有匹配的,则执行default语句

3、循环控制

①for循环

for(var i=0;i<5;i++){

document.writeln("你好!<br/>"); //writeln可以识别换行符,

}

②while循环

while(条件表达式){

执行语句;

}

例:

var a=0;

while(a<10){

document.writeln("你好!<br/>");

a++;

}

③do…while循环

do{

执行语句;

}while(条件表达式); //这里有分号不能漏掉

例:

var a=0;

do{

document.writeln("你好!<br/>");

a++;

}while(a<10);

案例:请编写一个程序,可以接收一个整数,并计算1+2+3+…n的值

var n=window.prompt("请输入一个整数");

n=parseInt(n);

var res=0

for(var i=1;i<=n;i++){

res+=I;

}

document.write("结果是"+res);

在浏览器中,我们可以通过调试工具来对JS代码进行调试,尤其是页面比较复杂的情况下,非常有用。请注意:首先要在Internet选项—高级 中取消 “禁止脚本调试”。

然后:工具—开发人员工具

六、JS函数与自定义函数

1、在html中引入js代码

<scriptlanguage="javascript"type="text/javascript">

</script>

language="javascript"type="text/javascript"主要是不同浏览器对JS的支持不同,有的不认language="javascript";有的不认type="text/javascript"。为实现兼容,可以两个都写

2、JS自定义函数

案例:编写一个程序,可以接收两个数,并接收一个运算符号(+、-、*、/),然后用运算符对两数进行运算。如果多个页面都要用到这个功能,就可以使用自定义函数。

function counter(num1,num2,oper){

var res=0;

switch(oper){

case "+":

res=num1+num2;

break;

case "-":

res=num1-num2;

break;

case "*":

res=num1*num2;

break;

case "/":

res=num1/num2;

break;

}

return res;

}

var a=window.prompt("请输入一个数");

var b=window.prompt("请输入另一个数");

var oper=window.prompt("请输入一个运算符号");

a=parseInt(a);

b=parseInt(b);

document.write(counter(a,b,oper));

如果其它html文件要使用该函数,要怎么办呢?

把上面的函数单独拿出,写到JS文件(xxx.js),然后在需要的地方引入即可

引入JS的格式:

<script language="javascript" src="xxx.js"></script>

JS文件的写法:直接function,不需要html的任何标记,如function.js的代码:

function counter(num1,num2,oper){

var res=0;

switch(oper){

case "+":

res=num1+num2;

break;

case "-":

res=num1-num2;

break;

case "*":

res=num1*num2;

break;

case "/":

res=num1/num2;

break;

}

return res;

}

上面就是一个完整的JS文件的全部代码

3、JS系统函数

eval()函数可计算某个字符串,并执行其中的的 JavaScript 代码,如:

eval("x=10;y=20;document.write(x*y)") =》得到200

②escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。

unescape() 函数可对通过 escape() 编码的字符串进行解码。如:

var str1="平平";

var str2=escape(str1);

window.alert(str2);

var str3=unescape(str2);

window.alert(str3);

escape()和unescape()往往配合使用,防止乱码的出现

4、关于接收函数返回值的问题

var a=test()

window.alert(a);

如果test函数没有返回值,但你又接收了,则返回undefined

看一个递归函数

function abc(num1){

if(num1>3){

abc(--num1);

}
document.write(num1);

}

abc(5);

结果为:3 3 4

​​
特别强调一下:JS的函数天然支持可变参数个数,如:
编写一个函数,可以接任意多个数,并计算它们的和
function abc(){
//在JS中有一个arguments,可以访问所有传入的值
//window.alert(arguments.length);
for(var i=0;i< arguments.length;i++){
window.alert(arguments[i]);
}
}

可以这样调用:
window.alert("abc(45,20,\"hello\")");//打出字符串: abc(45,20,"hello");//调用函数
abc(45,20,"hello");
window.alert("abc(30)");
abc(30);
window.alert("abc()");
abc();


计算机科学与技术 & 计算机网络技术:双专业课程体系完全导航指南

下一章:JavaScript学习笔记 (三):数组、冒泡排序与二分查找

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 8:39:32

Applite完全指南:让Mac软件管理变得简单直观的5个步骤

Applite完全指南&#xff1a;让Mac软件管理变得简单直观的5个步骤 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite 还在为Mac上的软件安装和更新感到困扰吗&#xff1f;Applite…

作者头像 李华
网站建设 2026/4/28 15:50:23

简单上手的终极游戏模组管理工具完全指南

简单上手的终极游戏模组管理工具完全指南 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 还在为复杂的游戏模组配置而烦恼吗&#xff1f;XXMI启动器作为专业的游戏模组管理平台&…

作者头像 李华
网站建设 2026/4/25 12:07:15

ncmToMp3:解锁网易云音乐格式转换的终极利器

还在为网易云VIP下载的音乐只能在特定App中播放而苦恼吗&#xff1f;ncmToMp3项目为您提供了完美的解决方案&#xff0c;能够将加密的NCM文件轻松转换为通用的MP3或FLAC格式&#xff0c;让您真正拥有音乐的自由使用权。无论您是想在车载播放器、手机还是电脑上播放&#xff0c;…

作者头像 李华
网站建设 2026/4/11 1:30:03

GetQzonehistory完整教程:5分钟学会永久备份QQ空间所有回忆

GetQzonehistory完整教程&#xff1a;5分钟学会永久备份QQ空间所有回忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还在担心QQ空间里的青春记忆会随着时间流逝而消失吗&#xff1f;…

作者头像 李华
网站建设 2026/4/26 11:28:10

ncmToMp3终极指南:3步解锁网易云音乐加密文件

还在为网易云会员下载的音乐无法在其他播放器播放而烦恼吗&#xff1f;ncmToMp3正是你需要的解决方案。这款免费开源工具能够将网易云音乐的NCM加密文件转换为通用的MP3或FLAC格式&#xff0c;让你真正拥有音乐的自由。 【免费下载链接】ncmToMp3 网易云vip的ncm文件转mp3/flac…

作者头像 李华
网站建设 2026/5/1 9:33:25

魔兽争霸3帧率革命:突破180帧极限的性能突破方案

魔兽争霸3帧率革命&#xff1a;突破180帧极限的性能突破方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典RTS游戏《魔兽争霸3》的帧率瓶…

作者头像 李华