zoukankan      html  css  js  c++  java
  • Javascript 基础—函数

    函数

    1.函数定义产生的初始值  可以用函数对象的参数 arguments.length确定有多少个参数。

    2.内嵌的函数一般只能在函数内部调用,不可以在函数外部调用。(类似有作用域)。但是对于条件函数及 在If的某个分支中定义的函数时没有作用域的,可以在这个分支外面调用。

    3. 函数和函数表达式的区别

    函数语句:  function  A(){}

    函数表达式: var A=function(){}

                    var B=function A(){}

    区别:(1)在调用之前,建立作用域时,函数语句会被声明 并将A指向函数的引用,但是函数表达式只会申明变量A 并赋值为undefined,对匿名函数是执行时在申明。

    (2)函数语句 的定义语句和变量申明语句相似有提顶功能,当先调用,再执行时同样也是可行的。

    (3)对于内存管理和垃圾回收方面的区别

         函数表达式,是把表达式赋值给一个对象,该变量是函数表达式的唯一引用,因此通过将该变量赋值为null时,就无法访问这个表达式,符合垃圾回收机制,会将函数表达式删除。

         函数语句定义的函数,它是以对象的形式独立存在的,无法删除。(delete是用来删除对象的对象,无法删除对象,可以通过删除对象的引用,让对象达到可以被回收的要求)

        将函数赋值给一个变量时,这时B其实有A的一个副本,将变量B不可用或者=NULL,函数A仍然可以用 ,A 和B不是指向同一个函数。B是指向A的副本,B如何变动对A没有影响。

    4.匿名函数

    形如  function(){} 是没有名字的函数。匿名自执行函数是在定义时将参数传入到函数中。

    好处:可以形成一个命名空间,防止空间污染。

    5. 全局变量和局部变量

     当同时存在全局变量和局部变量时,在函数内部 局部变量会覆盖全局变量。当多次定义局部变量时,其实是一个覆盖的过程,如果重新定义个已经定义的变量,其实在查找的时候的是同一个,关键看有没有赋值将原来的值覆盖掉了。

    6. 闭包

    闭包:闭包是一个函数,是在一个特定环境(及他的外函数)中运行的函数。对于环境中的一些变量,当调用这个函数时,这些变量任然可以用。

    闭包函数:当一个函数作为参数传入或者作为返回值返回时,都是闭包函数。

    闭包常见的错误:待续

         

  • 相关阅读:
    ECMAScript 6 字符串的扩展
    iOS蓝牙开发
    PhotoKit type类型
    HealthKit详解
    苹果证书签名机制
    小程序事件传递
    小程序跳转界面传可变参数
    小程序获取openId
    小程序发起post请求回调成功没有数据
    主干发布和分支发布
  • 原文地址:https://www.cnblogs.com/xuruweb/p/4091686.html
Copyright © 2011-2022 走看看