文章目录
程序的结构
在JS中程序结构分为三种,分别是:
· 顺序结构:代码从上往下依次执行
· 分支结构:某个条件成立与否执行的代码不一样
· 循环结构:某代码循环执行
分支结构
if ()…else if ( )…else…
/**
* if(判定条件){
* 语句1
* } else {
* 语句2
* }
*
* if中的判定条件成立则执行 语句1,否则执行 语句2
*/
switch……case……default
根据switch(表达式)
中表达式的值,执行case 值:
后的代码,知道遇到break
;如果所给的值和case :
后的值都不相等,则如果有default
则执行default
后的代码
/*
switch(表达式){
case 值1:
语句1
break
case 值2:
语句1
语句2
break
default:
语句4
}
*/
循环结构
for()循环
for( 初始化 ; 循环条件 ; 循环控制条件 ){ 循环体 }
解读:
1、先执行初始化语句
2、然后执行判断条件进行判断,如果成立,则执行循环体,否则不执行
3、执行完循环体后,执行循环控制条件,接着执行循环条件判定,如果还成立则继续执行循环体和循环控制条件,否则推出循环。
补充:执行次数为:0~无限次
while循环
while( 循环条件 ){ 循环体 }
解读:
先判定循环条件是否被满足,如果满足条件,则执行循环体直到循环条件不被满足结束循环。
补充:执行次数为:0~无限次
do…while循环
do{ 循环体 }while(循环条件)
解读:
先执行循环体再判定循环条件是否被满足,如果满足继续执行循环体,直到循环条件不被满足结束循环。
补充:执行次数为:1~无限次
循环体中的break 和 continue
在JS中break
和cnotinue
是两个关键字,控制整个循环体的执行。
break
:主要用来提前结束整个循环
continue
: 主要用来跳过本次循环continue
之后的剩余代码,继续下一次循环。
补充:标记for循环,直接看案例更直接
/***
* 标记for循环,就是为for循环添加一个标记:a:for(){}
* 通过标记 break a; 或者 continue a; 方便的控制循环的进行。
*/
a:for (let i = 0; i<=10; i++){
for(let j = 1; j<7; j++){
if(i%2 == 5){
break a; // 只结束了外层循环,内层循环一样会执行。
}
console.log(j)
}
console.log(i)
}
函数
函数在JS中式为了完成某一特定功能的代码的集合,是对某一段功能代码的封装,函数在JS中也是一种对象。
作用: 对可重用的代码进行封装便于程序的书写和修改,有利于后期的维护。
函数在JS中可以分为 内置函数和自定义函数;自定义函数又能分为普通函数、箭头函数和异步函数;而普通函数可分为 匿名函数和具名函数。
内置函数
所谓内置函数,就是JS实现定义好的函数,可以直接拿来引用,具体的有:alert(‘弹框’)、conform(“确认框”)、prompt(“输入框”)等。
自定义函数
关于自定义函数,这里先补充普通函数,箭头函数和异步函数学过以后补上
具名函数
所谓具名函数,就是带有函数名的函数,这类函数多用于封装复用的代码,使用具名函数可以多次调用。
语法:function 函数名(形参列表){ 函数体 return 返回值}
调用: 函数名( 实参列表 )
注意: 任何函数都具有返回值,即使没有return
整个函数仍然返回undefined
举个栗子:
// 判断一个数是否是偶数数
function isOdd(num){
if(num%2 == 0){
return true
}else{
return false
}
}
// 调用函数,验证 x 是不是偶数
if(isOdd(x)){
console.log(x + "是偶数")
}else{
console.log(x + "不是偶数")
}
匿名函数
匿名函数:即没有名字的函数,常常用来封装某些事件功能,也可以当作回调函数赋值给其他变量,也能实现函数复用。
语法:var 变量 = function(形参列表){ 函数体 <reutn 返回值>}
调用:变量(实参列表)
匿名函数作为普通函数的一种同样有返回值,可以当作回调函数的方式调用获得返回值
举个栗子:
function test1(num){
return num++;
}
console.log(test1(5))
var test2 = function(num){
num++
console.log("匿名函数,一般不写返回值")
return num;
}
console.log(test2(6))
函数补充
普通函数基本语法说明
- 声明函数时,形参列表可以为空,多个参数之间用逗号分隔
- 书写函数时,如果该函数没有
return
语句,这个函数的返回值是undefined
- 调用函数的时候,对应的函数形参列表是空,那么实参列表也是空。多个实参之间用逗号隔开
- 调用函数的时候,函数的传递的参数值可以接收也可以不接受。
- 调用函数时,函数体执行到return时会停止执行函数体,直接返回值。所以,可以不带任何返回变量的形式提前结束函数。
函数自己作为参数或是返回值
前面有提到,函数本身也是对象,那么函数作为对象是就可以当作是另一个函数的参数或返回值。
举个例子:
/**
* 函数作为对象可以作为另一个函数的实参或返回值
*/
// 一个函数作为另一个函数的返回值
function father(){
function son() {
console.log("这是son函数,作为father函数的返回值")
}
return son;
}
let f = father(); // 使用一个变量来承接 son 这个函数
f() // 运行这个函数
// 一个函数最为另一个函数的参数
function can() {
console.log("这个can函数将作为其他函数的参数")
}
// 设置立即执行函数 ,函数 can 作为这个函数的实参
(function(f){
f();
})(can)