美文网首页
2018-04-21

2018-04-21

作者: 柯柯_前端小白 | 来源:发表于2018-04-21 23:39 被阅读0次

    Javascript基础3

    1.数组

    • 数组是一组数据类型
    • 数组可以存储很多项,有顺序,很多项形成一个集合,这个集合就是数组Array;
    • 数组的字面量就是[];
       var Array = [];
      
    • 如何获取数组中的数据

    索引/下标 ,数组中的第一项的索引是从0开始;

    var names = ['kk','wxf','ps','ps1'];
    console.log(names[0]); //'kk'
    console.log(names[1]); //'wxf'
    console.log(names[2]); //'ps'
    console.log(names[3]); //'ps1'
    console.log(names[4]);  //underfind
    
    //动态插入/修改元素
    names[0]='xxxx';
    names[4] ='keke';
    console.log(names[0]);
    console.log(names[4]);
    
    // 获取数组中的每一项 (遍历数组)
    var names = ['kk','wxf','ps','ps1'];
    for (var i = 0; i <= names.length; i++){
        console.log(names[i]);
    }
    
    // 倒着获取数组中的每一项
     var names = ['kk','wxf','ps','ps1'];
     for (var i =names.length-1;i >=0 ;i--){
         console.log(names[i]);
     }
    
     //给空数组添加值
     var scrols = [];
         console.log(scrols);
     for(var i = 0;i<10;i++){
         scrols[i] = i;
     }
     console.log(scrols);
    
     //清空数组
     var names = ['kk','wxf','ps','ps1'];
     names.length = 0;
     console.log(names);
    
    • 求数组的和和平均值
      var numbers = [35, 12, 35, 90, 11, 12];
      var sum = 0; //定义和为0
      var avg;
      for(var i = 0; i < numbers.length; i++){
          sum += numbers[i] //相加 sum = sum + numbers[i];
      }
      avg = sum / numbers.length;
      console.log('数组中所有数的和'+sum);
      console.log('数组中所有数的平均值'+avg);
    
    • 求数组中的最大值和最小值
      //方法1
      var numbers = [35, 12, 35, 90, 11, 12];
      var max = numbers[0];
      var min = numbers[0];
      var maxIndex = 0;
      var minIndex = 0;
      for (var i = 0;i < numbers.length; i++){
          if(max < numbers[i]){
              //把最大值赋给比较大的那个数
              max = numbers[i];
              maxIndex = i; //获取索引
          }
          if(min > numbers[i]){
              min = numbers[i];
              minIndex = i;
          }
      }
      console.log('最大值'+max);
      console.log('最大值的索引'+maxIndex);
      console.log('最小值'+min);
      console.log('最小值的索引'+minIndex);
    
      //方法2
       /* Math是js中的数学方法集合,applay上下文调用后面的课程会详讲;
      Math.max(42,52)取2个值中的最大值 52
      Math.min(42,33)取2个值中的最小值 33
      Math.max.apply(null,arr) 取数组中的最大值
      Math.min.apply(null,arr) 取数组中的最小值*/
      var max1 = Math.max.apply(null,[12,234,45,678,1234,43]);
      var min1 = Math.min.apply(null,[12,234,45,678,1234,43]);
      console.log(max1);
      console.log(min1)
    
    • 分隔数组(字符串)

    1.for循环

    var names = ['王五','刘洋','天爸','杨洋','养养眼'];
    // 定义一个变量等于数组的第一项
    var sum = names[0];
    //定义分隔符
    var separator = '|';
    //循环遍历拼接字符串和分隔符
    for(var i = 1;i < names.length;i++){
       sum += separator + names[i];
    }
    console.log(sum);
    
    

    2.join() :用分隔符,组合数组,生成字符串

     var names = ['王五','刘洋','天爸','杨洋','养养眼'];
     console.log(names.join('|'));
    
    • 筛选数组: 将数组中多余的部分去掉,重新组合
      var nums = [12,0,13,34,0,67,0];
      var Array = []
      for(var i = 0; i< nums.length; i++){
          if(nums[i]!==0){
              // array[array.legth] = 1;
              // array[0] = 1;
              //将数字从新插入数组,Array.length相当于索引
           Array[Array.length] = nums[i];
          }
      }
      console.log(Array)
    
    • 翻转数组:将数组的位置倒过来
      var nums = [12,13,34,0,67];
      var Array = [];
      for (var i = nums.length-1;i >= 0;i--){
          Array[Array.length] = nums[i]; //从后往前交换索引
      }
      console.log(Array);
    
    • 冒泡排序
       //冒泡排序,从小到大的排序
       var numbers = [35, 12, 36, 90, 11, 18];
       //控制趟数,每一次找到最大的那个数
       for(var i = 0; i < numbers.length-1;i++){
           //内层循环,控制比较的次数把最大的往后移,最小的往前移;
           for(var j = 0; j< numbers.length-1-i;j++){
               if(numbers[j] > numbers[j+1]){
                   var temp = numbers[j];
                   //交换
                   numbers[j] = numbers[j+1];
                   numbers[j+1] = temp;
               }
           }
       }
       console.log(numbers)
    

    2.函数:

    把一段相对独立的具有特定功能的代码块封装起来,形成一个独立实体,就是函数,起个名字(函数名),在后续开发中可以反复调用.

    • 封装
    • 一次封装多次调用;
    • 手动调用;

    1.函数的参数

    • 函数的声明:可以在函数定义前调用
       function 函数名sayHi(){
        函数体
       }
       //调用函数
      //  用函数名调用,可以多次调用
      sayHi();
    
    • 函数表达式:不可以在函数前调用
          var sayHi(); = function(){
              函数体
          }
          //调用函数
          // 函数名
          sayHi();
    
    • 函数的形参和实参

    形式参数:在声明一个函数的时候,为了函数的功能更加灵活,有些值是固定不了的,对于这些固定不了的值。我们可以给函数设置参数。这个参数没有具体的值,仅仅起到一个占位置的作用,我们通常称之为形式参数,也叫形参。

    实际参数:如果函数在声明时,设置了形参,那么在函数调用的时候就需要传入对应的参数,我们把传入的参数叫做实际参数,也叫实参。

      //求1-n之间所有数的和
             var sum = 0;
             //n 形式参数
             function getSum(n){
                 for(var i = 0;i <= n;i++){
                     sum += i
                 }
                 console.log(sum);
             }
             getSum(3);
    
             //求n-m之间所有数额和
             var sum1 = 0;
             // n1 m 形式参数
             function getSum1(n1,m){
                 for(var j = n1;j <= m;j++){
                     sum1 += j;
                 }
                 console.log(sum1);
             }
             getSum1(1,2);
    

    3.函数的返回值

    return 可以拿到函数的结果,返回函数的值
    return跳出函数后面的代码不会执行
    如果函数没有return则返回undefined;
    若你不需要返回值,你直接调用函数即可,不需要用变量来接受它的返回值
    console.log(fn()); //第一步调用函数; 第二步打印出来

          //函数返回值的语法
          //声明一个带返回值的函数
          function 函数名(形参1, 形参2, 形参...){
          //函数体
          return 返回值;
          }
          //可以通过变量来接收这个返回值
          var 变量 = 函数名(实参1, 实参2, 实参3);
    

    相关文章

      网友评论

          本文标题:2018-04-21

          本文链接:https://www.haomeiwen.com/subject/kkxqlftx.html