zoukankan      html  css  js  c++  java
  • JavaScript——数组&函数

    本章的内容

    本章的总体思路,围绕着数组展开。

    数组Arry

    一、数组是是?它有几种创建方式?

    1.数组是什么?

    • 数组是一组相关的数据集合。可以把一组相关的数据一起存放,并提供方便的访问(获取)方式。
    • 数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变量名下的方式。

    2.数组的创建方式

    一共有两种方式。new一个,还有一种是字面量的方式。

    • new一个,
      var 数组名 = new Array() ;
      var arr = new Array();   // 创建一个新的空数组
    
    • 字面量的方式
      //1. 使用数组字面量方式创建空的数组
      var  数组名 = [];
      //2. 使用数组字面量方式创建带初始值的数组
      var  数组名 = ['大明','小陈','小张','老李'];
      //3.在数据中可以放任意类型
      var  数组名 = [0,true,'小张',13213];
      
    • 这种字面量方式也是我们以后最多使用的方式,也是在开发中常用的

    3.如何访问数组中的元素?

    4.使用索引(下标)进行访问。

    • 需要注意的是这里的索引是从0开始的。
    // 定义数组
    var arrStus = [1,2,3];
    // 获取数组中的第2个元素
    alert(arrStus[1]);  //这里获取的是值是 2  
    alert(arrStus[6]);  //访问时数组没有和索引值对应的元素,则得到的值是undefined
    

    5.有没有更快的访问方式?

    • 我们可以通过遍历的方式。一下子把数组的数组全拿出来。这个在实际的开发中,非常常用。
    • 使用for循环!
    var arr = ['red','green', 'blue'];
    for(var i = 0; i < arr.length; i++){
        console.log(arrStus[i]);
    }
    
    • 这个代码里面的arr.length 指的是数组的长度,
    • 当我们数组里面的元素个数发生了变化,这个 length 属性跟着一起变化

    数组的length属性可以被修改

    1. 如果设置的length属性值大于数组的元素个数,则会在数组末尾出现空白元素;>就增加
    2. 如果设置的length属性值小于数组的元素个数,则会把超过该值的数组元素删除,<就删除

    6、如何新增元素呢?

    我们通过一个简单的实例代码,很容易的就可以明白了。

    • 实现的原理就是:在数组的末尾插入新元素:
      数组[ 数组.length ] = 新数据;
    
      var arr = [1,2,3,4,5]
      alert(arr.length)   //这里是5个元素,所以长度是5.索引的最大值是4
      arr[arr.length] = 6;
      alert(arr.length)   //这里的长度就编程6了。
    

    二、函数是什么?

    1.概念以及简单的使用。

    在 JS 里面,可能会定义非常多的相同代码或者功能相似的代码,这些代码可能需要大量重复使用。虽然 for循环语句也能实现一些简单的重复操作,但是比较具有局限性,此时我们就可以使用 JS 中的函数。
    

    ​ 函数:就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用

    • 简单的使用
    // 1. 声明函数
    function 函数名() {
      //函数代码
    }
    // 2. 调用函数
    函数名();
    
    // 比如,我想实现一个累加的算法从用0一直加到100,
    
     function getSum(){
        var sumNum = 0;// 准备一个变量,保存数字和
        for (var i = 1; i <= 100; i++) {
          sumNum += i;// 把每个数值 都累加 到变量中
        }
        alert(sumNum);
      }
      // 调用函数
      getSum();
    

    2.函数的参数

    参数的作用 : 在函数内部某些值不能固定,我们可以通过参数在调用函数时传递不同的值进去。

    函数参数的运用:

    // 带参数的函数声明
    function 函数名(形参1, 形参2 , 形参3...) { // 可以定义任意多的参数,用逗号分隔
      // 函数体
    }
    // 带参数的函数调用
    函数名(实参1, 实参2, 实参3...); 
    
    1. 调用的时候实参值是传递给形参的
    2. 形参简单理解为:不用声明的变量
    3. 实参和形参的多个参数之间用逗号(,)分隔。
    4. 形参的个数可以和实参个数不匹配,但是结果不可预计,我们尽量要匹配
    5. 在JavaScript中,形参的默认值是undefined。
    //实际的例子。实现一个算法,从用户输入值,获取两个值,对两个值先进行求和,再跟4取余;
    alert("请输入第一个值");
    var a = prompt();
    alert("请输入第二个值");
    var b = prompt();
    var re;
    var sum;
    function remainder(num1,num2) {
      sum = num1 + num2;
      alert("求和的运算结果是:" + sum);
    
      re = sum % 4;
      alert("取余的运算结果是:" + re)
    }
    
    remainder(a,b);
    

    3.函数的返回值

    • 一个函数内部,可以提供一个返回值,将得到的运算结果,传递给另一个函数进行进一步加工和处理
    // return一下就可以了
    // 声明函数
    function 函数名(){
        ...
        return  需要返回的值;
    }
    // 调用函数
    函数名();    // 此时调用函数就可以得到函数体内return 后面的值
    
    
    //比如下面描述的以一个例子。
    // 利用函数求数组 [5,2,99,101,67,77] 中的最大数值。这里你需要首先了解一下算法的概念
    
    //所谓的算法就是解决某个问题的一种方法。
    
            function getArrMax(arr) { // arr 接受一个数组  arr =  [5,2,99,101,67,77]
                var max = arr[0];
                for (var i = 1; i <= arr.length; i++) {
                    if (arr[i] > max) {
                        max = arr[i];
                    }
                }
                return max;
            }
            // getArrMax([5, 2, 99, 101, 67, 77]); // 实参是一个数组送过去
            // 在我们实际开发里面,我们经常用一个变量来接受 函数的返回结果 使用更简单
            // var re = getArrMax([5, 2, 99, 101, 67, 77]);
            var re = getArrMax([3, 77, 44, 99, 143]);
            console.log(re);
    
    • 在使用 return 语句时,函数会停止执行,并返回指定的值
    • 如果函数没有 return ,返回的值是 undefined

    4.总结一下前面学过的break,continue,和现在所学习到的return的区别

    • break :结束当前的循环体(如 for、while)
    • continue :跳出本次循环,继续执行下次循环(如 for、while)
    • return :不仅可以退出循环,还能够返回 return 语句中的值,同时还可以结束当前的函数体内的代码

    5. arguments的使用

    ​ 当不确定有多少个参数传递的时候,可以用 arguments 来获取。JavaScript 中,arguments实际上它是当前函数的一个内置对象。所有函数都内置了一个 arguments 对象,arguments 对象中存储了传递的所有实参。arguments展示形式是一个伪数组,因此可以进行遍历。伪数组具有以下特点:

    • 具有 length 属性

    • 按索引方式储存数据

    • 不具有数组的 push , pop 等方法

      注意:在函数内部使用该对象,用此对象获取函数调用时传的实参。

    6 .函数可以调用函数吗?

    	函数内部可以调用另一个函数,在同一作用域代码中,函数名即代表封装的操作,使用函数名加括号即可以将封装的操作执行。
    

    7. 函数的两种声明方式

    • 自定义函数方式(命名函数)

      利用函数关键字 function 自定义函数方式

      // 声明定义方式
      function fn() {...}
      // 调用  
      fn();  
      
      • 因为有名字,所以也被称为命名函数
      • 调用函数的代码既可以放到声明函数的前面,也可以放在声明函数的后面
    • 函数表达式方式(匿名函数)

      利用函数表达式方式的写法如下:

      // 这是函数表达式写法,匿名函数后面跟分号结束
      var fn = function(){...};
      // 调用的方式,函数调用必须写到函数体下面
      fn();
      
      • 因为函数没有名字,所以也被称为匿名函数
      • 这个fn 里面存储的是一个函数
      • 函数表达式方式原理跟声明变量方式是一致的
      • 函数调用的代码必须写到函数体后面

    8.函数自己调用自己可行吗?

    这是可以的。比如下面的实例代码

    (function() {
                console.log("这是函数的自调用");
                 }
    )();//这个函数就是函数自调用
    //解释:
    var f1 = function(){
        console.log("你好!");
    };
    console.log(f1);
    f1();
    //解释:f1里面存储的就是函数代码,通过f1加()的方式调用,没有f1变量的时候,直接在代码后面加上()就可以调用,叫函数的自调用
    
    

    9.什么是回调函数呢?

    所谓的回调函数,就是函数作为参数进行调用。值得说明的是,这种回调,在实际工作中使用非常广泛和频繁。

    //函数声明,fn是变量,fn也是参数
    function f1(fn){
        fn();//函数调用----说明fn这个变量中存储的是一个函数
    }
    function f2(){
        console.log("函数可以作为参数使用");
    }
    f1(f2);//调用f1,将f2作为参数传进去
    //结果:函数可以作为参数使用
    
  • 相关阅读:
    jsp第四次
    jsp第二次作业
    jsp第一次作业
    软件测试课堂练习
    11.11日
    10.28
    10.25
    10.21
    jsp第七周作业
    JSP第六周作业
  • 原文地址:https://www.cnblogs.com/BM-laoli/p/12394109.html
Copyright © 2011-2022 走看看