• JS函数概念


    函数的概念

    1)函数的基本概念和创建方式

    创建:

    • function关键字创建代码块
    function zxw(a){
        console.log(a);
    }

    function后面接函数的名字,圆括号是要传入函数的参数,函数体在大括号里。

    • 函数表达式
    var zxw = function(a){
        console.log(a);
    }

    这是用变量赋值的写法将匿名函数赋值给变量,如果在加上了函数名,那只有在这函数体内部有效,函数体外部是无效的。

    调用和return语句:

    要调用函数时,写上函数名后面在加圆括号就可以调用了

    function add(a,b){
        return a+b;
    }
    
    add(1,2)

    上面函数圆括号内里的就是这个函数的参数,在调用add这个函数时将数值1和2带入进去。

    函数体内部的return语句表示的是返回,当JavaScript遇到这个语句,就直接返回这个语句后面的值,就算后面还有语句也不会执行。return语句所带的那个表达式就是函数的返回值,如果没有return语句那这个函数就不会有任何输出,返回的是undefined。

    函数可以自己调用自己,这个就叫递归。

    2)函数名提升

    JavaScript 引擎将函数名视同变量名,在用function命令声明函数时,整个函数会像变量声明一样,被提升到代码头部:

    f();
    function zxw(){
        console.log('zxw');
    }

     虽然先执行了f函数,但由于函数提升,函数f被提升到了代码头部,所以在被调用前就声明了。

    只有用函数声明的方式才存在函数提升,如果用函数表达式的方式,JavaScript就会报错。

    f1();
    var f1 = function(){}   //undefined

    3)参数

    传递方式:

    JavaScript中数据类型一般分为2类:

    • 原始类型:存储在栈(stack)中的简单的数据,它们的值直接存储在变量访问的位置。
    • 引用类型:存储在堆(heap)中的对象,存储在变量处的值是一个指针(point),指向存储对象的内存地址。

    这2种内存分配机制也导致传递参数的方式也不同

    • 传入的参数为原始类型:只是把变量的值传递给参数,后面无论怎么修改参数和变量都不会互相影响。
    • 传入的参数为引用类型:当传入的参数是引用类型的时,此时传入函数的是原始值的地址,因为对象变量它里面的值是这个对象在堆内存中的内存地址,所以在函数内部修改参数的话就会影响到原始值。

    arguments对象:

    说起参数,还要说到arguments对象,它可以读取函数体内部的所有参数

    function f(d){
        console.log(arguments);  //函数参数的集合
        console.log(arguments.length);  //传递参数的个数
    }

    arguments对象的格式很想数组,但它不是数组,所以数组的方法不能用在arguments对象上

    总结下,函数在JavaScript中作为第一等公民,它被看做一种值,凡是可以使用值的地方就可以使用函数。我们可以将函数赋值给对象或对象的属性,也可以当做参数传入其他函数,或者作为函数的结果返回。

  • 相关阅读:
    误删表空间处理办法
    一步步开发网站系列-网站界面
    webstorm ftp发布问题
    TP5接受Vue跨域请求
    tp5上传图片添加永久素材到微信公众号
    将博客搬至CSDN
    swoole http_server 多进程并使用多进程处理消息
    高并发下,php与redis实现的抢购、秒杀功能
    SVN服务器搭建
    web服务器安全笔记
  • 原文地址:https://www.cnblogs.com/ianyanyzx/p/9589394.html
Copyright © 2020-2023  润新知