07-JavaScript数组和函数

作者: 极客江南 | 来源:发表于2018-11-01 14:05 被阅读410次

    数组的基本概念

    • JavaScript中数组的概念和C语言几乎一样, 都是指一组有序数据集合
    • 不同的是由于JavaScript是弱语言, 所以JavaScript的数组中可以存放不同类型的数据
    • 不同的是JavaScript中的数组是引用类型, 提供了很多便捷的属性和方法, 让我们使用起来更加简单

    定义数组

    var arr1=new Array(); 
    var arr2=new Array("Saab","Volvo","BMW");
    var arr3=[];
    var arr4=["Saab","Volvo","BMW"];
    

    使用数组

        var arr1 = new Array();
        arr1[0] = 1;
        arr1[1] = "12";
        arr1[2] = true;
        console.log(arr[0]);
        console.log(arr[1]);
        console.log(arr[2]);
    

    注意点:

    • C语言中的数组必须在定义时确定长度, 后续不可修改
    • 而JavaScript中的数组不需要在定义时确定长度, 后续可以动态增长

    数组遍历

        var arr3 = [1, "123", true];
        for(var i = 0; i < arr3.length; i++){
            console.log(arr3[i]);
        }
    

    注意点:

    • JavaScript中可以通过数组的length属性直接获取数组的长度, 不用像C语言一样额外计算

    函数基本概念

    • JavaScript中函数的概念和C语言几乎一样,都是用于封装一段代码,方便将来重复使用的
    • 不同的是JavaScript中的函数也是一种类型, 是引用类型

    函数的定义

    // 格式一:
    function 函数名(形参1, 形参2, 形参3...) {
      //函数体
      return 返回值;
    }
    
    // 格式二:
    var 变量 = 函数名(实参1, 实参2, 实参3...);
    

    注意点:

    • 和C语言一样, 函数可以没有形参, 也可以有一个或多个形参
    • 不同的是由于JavaScript是弱语言, 所以形参只用写一个占位符即可
        function sayHi(name) {
            console.log(name);
        }
        sayHi("lnj");
    
        var sayHello = function (name, age) {
            console.log("name = "+ name, "age = "+age);
        }
        sayHello("lnj", 12);
    

    注意点:

    • 和C语言一样, 函数可以没有返回值, 也可以有返回值
    • 不同的是JavaScript是弱语言, 所以不用只能返回值类型
    • 如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined
    • 如果函数使用 return语句,那么跟再return后面的值,就成了函数的返回值
    • 如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined
    function sum(a, b) {
        var res = a + b;
        return res;
    }
    var res = sum(10, 20);
    console.log(res); // 30
    
    function sum(a, b) {
       var res = a + b;
       return;
    }
    var res = sum(10, 20);
     console.log(res); // undefined
    
    function sum(a, b) {
       var res = a + b;
    }
    var res = sum(10, 20);
    console.log(res); // undefined
    

    arguments的使用

    • 由于JavaScript中的函数是引用类型(可以添加属性和方法)。所以所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有的实参。arguments是一个伪数组,因此及可以进行遍历
        function getSum() {
          var sum = 0;
          for (var i = 0; i < arguments.length; i++) {
            sum += arguments[i];
          }
          return sum;
        }
    
        var sum = getSum(5, 1, 3, 4);
        console.log(sum);
    

    函数作为参数和返回值

    • 由于JavaScript中的函数也是一种数据类型, 所以函数也可以作为参数和返回值使用
    • 函数作为其他函数参数
    var sayHi = function () {
            console.log("hello world");
        }
        function test(fn) {
            fn();
        }
        test(sayHi);
    
    • 函数作为其他函数返回值
        function test() {
            var sayHi = function () {
                console.log("hello world");
            }
            return sayHi
        }
        var res = test();
        res();
    

    匿名函数

    • 没有名称的函数, 我们称之为匿名函数
      • 匿名函数不能单独出现, 一般作为其他函数参数或者返回值使用
        // 报错
        function () {
            console.log("hello world");
        }
    
        // 立即执行函数
        (function () {
            console.log("hello world");
        })();
    
        // 作为函数参数
        function test(fn) {
            fn();
        }
        test(function () {
            console.log("hello world");
        });
    
        // 作为函数返回值
        function test() {
            return function () {
                console.log("hello world");
            }
        }
        var res = test();
        res();
    

    相关文章

      网友评论

        本文标题:07-JavaScript数组和函数

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