js流程控制与函数

流程控制

1.条件语句 分支结构

单向分支
if (条件表达式){
    code...
}
双向分支
if (条件表达式){
    code...
}else{
    code...
}
多向分支
if (条件表达式){
    code...
}else if(条件表达式){ code... }else{ code... } 
switch (条件表达式){
    case 条件表达式可能的结果:code... break;
    case 条件表达式可能的结果:code... break; case 条件表达式可能的结果:code... break; default code... } 
嵌套分支
if (条件表达式){
    if (条件表达式){
        code...
    }
}else { if (条件表达式){ code... } } 

2.循环语句

while循环
while (){
    //循环体
}
do...while循环
do{
    //循环体
} while(循环条件) 
for循环
for (变量定义;循环条件;变量变化){
    //循环体 } 

3.其他语句

跳转语句
continue;  跳出当前循环 继续下一次
break;     结束循环 return: 结束函数 
异常
try{
    code...
}catch(err){
    
}finally{
    
}

catch相当于python中的except

严格模式
//写在所有代码的最前面
//开启严格模式方法
'use strict' 
  • 严格模式下 声明不加var会报错
  • eval() 在严格模式不能用

4.注意

  • 当分支语句和循环语句的结构体{}内只有一行代码的时候,可以省略{}

函数

1.定义函数

//function 关键字方式
function 函数名(参数1,参数2){ code... } //表达式方式 var 函数名 = function(参数1,参数2){ code... } 

2.函数特点

  • 函数名就是变量名
  • 函数调用必须加()
  • 关键字方式定义的函数,会存在函数提升(可以在函数定义前调用,而表达式方式只能在定义后调用)

3.函数的参数问题

形参和实参
  • 实参数量>形参数量 多给的实参会被忽略
  • 实参数量<形参数量 多出的形参,会使用默认值undefined
参数的默认值
//ES6 新增的语法
function demo(a,b=默认值){
    code... } //有默认值的参数一定在后面 
可变数量的参数
arguments对象 可以获取所有的实参
只能在函数中使用
arguments是类数组对象,用法同数组,可以使用for遍历循环 例: function sum(){ for (var i=0;i<arguments.length;i++){ s += arguments[i] } return s; } 

4.return

  • return 可以结束函数
  • return返回值
  • js return 只能返回一个值

2.5 回调函数(高阶函数)

  • 函数的参数 还是 函数
list.sort()按字符串排序
list.sort(function(v1,v2){
    return v1-v2 }) return值大于0时,v1与v2换位置 return值小于0时,v1与v2不换位置 

2.6 自调函数

(function(){
    
})();

(function 函数名(){ })() //如果多个自调函数连续写, 中间必须加 ; 否则报错 //产生局部作用域 //有效避免全局变量污染 

2.7 递归

与python相同

转载于:https://www.cnblogs.com/luck-L/p/9449625.html

你可能感兴趣的:(js流程控制与函数)