Function

function

什么是函数:
函数:封装一项特地使命的步骤清单的代码段,起一个名字。(**递次中供应的一项效劳的步骤申明**)
 什么时候运用函数?当一项使命须要反复实行,但又不愿望反复编写时。(**代码重用!**)
 怎样声明函数:function 使命名([参数变量列表]){
            步骤清单代码段
                        [return 返回值]
                  }
     ***函数名(使命名): 指向函数定义的一个变量
                      函数:封装函数定义的援用范例对象
            ***声明时,不实行!也不读取内部的代码!
        怎样挪用函数实行:任何位置: 函数名([参数值列表]);
            ***挪用时,才读取内部的代码,实行
            
 参数变量:特地吸收要传入要领中处置惩罚的数据的变量。
  什么时候须要定义参数:假如一个函数,必需一些数据才可平常实行,须要几个数据,就定义几个参数变量。
  什么时候怎样为参数变量赋值:在挪用函数时,依据参数定义时的递次和个数,顺次传入参数值。
  
    返回值:函数的实行效果
            什么时候须要返回值:只需函数须要有明白的实行效果时
                         假如挪用者须要取得明白的实行效果时
            怎样定义返回值: 函数定义内部,平常函数体末端
                            return 值;
            挪用者什么时候怎样取得返回值:
                    1. 一个有返回值的函数挪用,能够当作一个值运用
                    2. 挪用时,可运用变量保留住函数挪用的返回值
function buy(what,moeny){
    console.log("Step1:取盒饭");
    console.log("Step2:去食堂");
    console.log("Step3:打饭"+what);
    moeny-=3;
    console.log("Step4:扣款3元,余额:"+moeny);
    console.log("Step5:回宿舍");
    return "香馥馥的"+what;
   }
   console.log(buy("宫保鸡丁",10)); 

***变量作用域:一个变量的可用局限
    有2种:1. 全局作用域:window
          全局变量——放在全局作用域(window)中的变量
          可在递次的任何位置接见全局变量
         2. 部份作用域:在函数挪用时才建立的作用域
              部份变量:2种:1. 参数变量
                          2. 在函数定义中var的变量
              ***仅在函数挪用时,动态建立
                 挪用时,假如部份有,就不必全局的!
              ***挪用后,随部份作用域一同烧毁
var kl=10;
   function rose(){
    var kl=5;
    kl--;
    console.log(kl);
   }
   function jack() {
    kl--;
    console.log(kl);
   }
   console.log(kl);//全局kl=10
   rose();//4
   console.log(kl);//全局kl=10
   jack();//9
   console.log(kl);//全局kl=9

声明提早

  声明提早:正式最先实行递次前,先将var声明的变量和function声明的函数,提早到*当前作用域*顶部,集合声明,赋值留在原地。
var n=100;
            function fun(){
                var n;//undifend
                console.log(n);
                n=99;
                console.log(n);
            }
            fun();//99
            console.log(n);

按值通报:两变量间赋值,或将变量作为函数的参数通报时都仅将变量中的值,复制一个副本给对方!

var n=100;
            var m=n;
            n++;
            console.log(m);//100

全局函数:ES规范中划定的,由浏览器厂商完成的,不须要任何对象前缀便可直接接见的函数.

 比方:parseInt/Float(str),isNaN(n)

 比方:alert() prompt()——BOM

分支构造

分支构造:

递次构造:3种:
 递次构造:默许递次都是自上向下逐行递次实行
 分支构造:依据差别的前提,挑选实行差别的操纵
         操纵的庞杂水平
 轮回构造:让递次反复实行统一代码段。

分支构造:3种状况:
1. 一个前提,一件事:满足前提就实行,(不满足就什么都不做)
短路逻辑:前提&&(操纵1,操纵2...)
    什么时候运用:操纵异常简朴时
  if构造:假如 满足*前提*, 就实行代码段
          if(前提){
     满足前提时,才实行的代码段
          }
var price=parseFloat(prompt("请输入单价"));
            var count=parseFloat(prompt("输入数目"));
            var money=parseFloat(prompt("输入收款金额"));
            var total=price*count;
            if(total>=500){
                total*=0.8;
            }
            var change=money-total;
            console.log("应收:"+total+";找零"+change);
2. 一个前提,两件事:二选一实行!
         假如 满足*前提*,就实行操纵1,不然,实行操纵2
      三目运算:前提?操纵1:操纵2;
        什么时候运用:操纵1和操纵2,都异常简朴时
         if...else构造:
         if(前提){
        满足前提才实行的代码段
         }else{//不然
        不满足前提才实行的代码段
         }
var price=parseFloat(prompt("请输入单价"));
            var count=parseFloat(prompt("输入数目"));
            var money=parseFloat(prompt("输入收款金额"));
            var total=price*count;
            if(money>=total){
                var change=money-total;
              console.log("应收:"+total+";找零"+change);
            }else{
                var change=total-moeny;
              console.log("应收:"+total+";还差"+change);
            }
  1. 多个前提,多件事,多选一实行!(有能够都不实行)

      假如 满足 前提1 就实行 操纵1

    不然,假如满足 前提2 就实行 操纵2
    … …

                   [不然,默许操纵]

    三目:前提1?操纵1:

         前提2?操纵2:
                 ...:
             默许操纵——不可省略

    if…else if构造:

        if(前提1){
     满足前提1才实行的操纵1;
         }else if(前提2){
     满足前提2才实行的操纵2;
         }else if(...){
     ...
         }[else{
      假如以上任何前提都不满足,则实行默许操纵
         }]
if (score<0||score>100) {
      console.log("无效分数");
     } else if(score>=90){
      console.log("A");
     } else if (score>=80) {
      console.log("B");
     } else if (score>=70) {
      console.log("C");
     }  else {
      console.log("D");
     }

switch…case构造:
什么时候运用:当前提都是全等比较时,才可用switch构造
switch(表达式){ //1. 盘算表达式的效果

//用表达式的值和每一个case后的值做**全等**比较
//遇到一个全等的case值,则进入该case最先实行

//并默许以此触发以后一切case的实行
case 值1:

 满足值1才实行的代码段1;
case 值2:
     满足值2才实行的代码段2;
     ...:
     ... ...
 default:
 假如前边的值都不满足,实行默许代码段

}

 switch(parseInt(prompt("请按键:"))){
      case 1:
      console.log("查询进行中.....");
      case 2:
      console.log("存款中......");
      case 3:
      console.log("转账进行中....");
      case 0:
      console.log("迎接下次再来!");
      default:
      console.lop("无效按键");
     }

break: 中断当前构造的实行,并跳出构造。

位置:在每一个case之间

什么时候能够省略部份break:高低两个case愿望实行雷同代码时

switch(parseInt(prompt("请按键:"))){
      case 1:
      console.log("查询进行中.....");
      break;
      case 2:
      case 3:
      console.log("系统维护中....");
      break;
      case 0:
      console.log("迎接下次再来!");
      break;
      default:
      console.log("无效按键");
     }
    原文作者:行走的程序猿
    原文地址: https://segmentfault.com/a/1190000008150800
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞