zoukankan      html  css  js  c++  java
  • JavaScript基础过关第三天

    JavaScript基础过关第三天

    数组

    • 数组倒序

      • 思路:第一个与最后一个交换,第二个与倒数第二个交换,以此类推,交换次数等于长度除以2的商。
      var array1=[10,20,30,40,50];
      	for(var i=0;i<array1.length/2;i++){
      		var temp=array1[i];
      		array1[i]=array1[array1.length-1-i];
      		array1[array1.length-1-i]=temp;
      	}
      	console.log(array1);
      
    • 冒泡排序

      • 思路:通过两两比较来交换顺序

      • 图示:

      • 比较轮数:长度-1

      • 每一轮的比较次数:长度-1-轮数

      	var array=[10,0,30,60,35];
      	for(var i=0;i<array.length-1;i++){//轮数
      		for(var j=0;j<array.length-1-i;j++){//每一轮比较的次数
      			if(array[j]>array[j+1]){//从小到大的顺序
      				var temp=array[j];
      				array[j]=array[j+1];
      				array[j+1]=temp;
      			}
      		}
      	}
      	console.log(array);
      

    函数

    • arguments伪数组的使用
    function f1(){
        //好处,不用再定义形参从而限制形参个数
        var sum=0;
        for(var i=0;i<arguments.length;i++){
            sum +=arguments[i];
        }
        return sum;
    }
    console.log(f1(10,20,30));//60
    
    • 定义方式
    1. 函数表达
    var f2=function(){//将一个匿名函数给了一个变量
        console.log("这是函数表达式");
    };//这是一个赋值过程,必须加分号
    
    1. 函数声明式

      function f2(){
          console.log("这是函数声明式");
      }
      
    2. 区别

      function f1(){
          console.log("1");
      }
      f1();
      function f1(){
          console.log("2");
      }//只有函数声明式会提前声明
      f1();
      

      相当于

      function f1(){
          console.log("1");
      }
      function f1(){
          console.log("2");
      }
      f1();
      f1();
      

      两次调用结果都会输出2

      f1=function(){
          console.log("1");
      }
      f1();
      f1=function(){
          console.log("2");//函数表达式不会提前声明,所以按照顺序输出
      }
      f1();
      

      先输出1,再输出2

    • 函数作为参数
    function f1(fn){
        fn();
    }
    function f2(){
        console.log("这是函数作为参数的实例");
    }
    f1(f2);//注意这里传入函数名称,而不是函数的返回值(f2())
    
    • 函数作为返回值

      function f2(){
      		return function f3(){
      			console.log("函数作为返回值");
      		}
      	}
      var f1=f2();//f1接收了一个函数
      f1();//调用f1
      
    • 预解析

      变量和函数的声明会提前(赋值不提前),提前到当前作用域的调用者的前面

      f1();
      function f1(){
          console.log(num1);
          var num1=10;
      }
      

      输出:undefined

      如果去掉“var num1=10”,会报错(未声明)

      相当于:

      function f1(){
          var num1;
          console.log(num1);
      }
      f1();
      

      f1();
      var num1=20;
      function f1(){
          console.log(num1);
          var num1=10;
      }//在f1内部也提前了变量声明,同样没有提前变量赋值
      

      输出:undefined

      相当于:

      var num1=20;
      function f1(){
          var num1;
          console.log(num1);
      }
      f1();
      

      f1();
      var num1=20;
      function f1(){
          console.log(num1);
      }//变量声明(num1)和函数声明(f1)提前,但是变量赋值没有提前
      

      输出:undefined


    var num1=20;
    function f1(){
        console.log(num1);
    }
    f1();//不存在提前,顺序调用
    

    ​ 输出:20


    • 思考题

      f1();
      console.log(a);
      console.log(b);
      console.log(c);
      function f1(){
          var a=b=c=9;
          console.log(a);
      	console.log(b);
      	console.log(c);
      }
      

      思考......

    结果:

    上面:a报错 b=9 c=9

    下面: a=9 b=9 c=9

    相当于:

    function f1(){
        var a=9;
        b=9;//b与c前面没有var,所以他们是隐式全局变量
        c=9;
        console.log(a);//9
    	console.log(b);//9
    	console.log(c);//9
    }
    f1();
    console.log(a);//报错(a为局部变量)
    console.log(b);//9
    console.log(c);//9
    
  • 相关阅读:
    SAP MM 采购附加费计入物料成本之二
    SAP MM 采购附加费计入物料成本?
    SAP MM 作为采购附加费的运费为啥没能在收货的时候计入物料成本?
    SAP MM 外部采购流程里的Advanced Return Management
    SAP MM 外部采购流程里的如同鸡肋一样的Advanced Returns Management功能
    SAP MM Why is the freight not included in the material cost at the time of GR?
    SAP MM: Change of material moving average price after goods receipt and invoice verification posting for PO
    SAP 创建启用了ARM功能的采购订单,报错 Shipping processing is not selected to supplier 100057 in purchase org. 0002
    GIT·代码仓库默认分支更改
    .Net/C#·运行报错缺少XXX文件,但双击无法跳转缺少位置
  • 原文地址:https://www.cnblogs.com/upxiao/p/9391633.html
Copyright © 2011-2022 走看看