zoukankan      html  css  js  c++  java
  • JavaScript函数定义语法var fn = function() {} 和 function fn() {}的区别

    这两种是有区别的,一种是函数声明,一种是函数表达式。
    函数声明:

    funName()//正常执行
    function funName(){
        //code
    }

    函数表达式:

    funName()//报错
    var funName=function(){
        //code
    }

    解析器在向执行环境加载数据时,对这两种是有区别的:

    解析器会率先读取函数声明,以确保在执行任何代码之前可以访问,

    而函数表达式,则必须等到解析器执行到他所在的代码才会被真正执行。

    另外除了这一点区别,函数声明与函数表达式的语法其实是等价的。

    注:

    实际开发中,建议使用第二种方式

    在实际开发中,存在各种各样的js文件,各种js文件互相引入,当业务逻辑相似,函数功能相似的时候,就有可能使函数名重复,如果使用第一种方式,这个时候就会覆盖先前代码的函数声明。

    由于JavaScript是单线程的执行方式,使用第二种方式,可以使原来的js函数得以执行,同时又使新引入的函数执行成功。

    var fun = function(){
        console.log(1);
    }
    
    fun();//1
    
    /* 以下是引入文件 文件中可能出现相同的函数名
    <script src="/js/file.js">
     */
    var fun = function(){
     console.log(2);
    }
    fun();//2

    如果是使用第一种方式,则两次执行都会是2.

    当然了,使用第一种方式也没有太大问题,如果出现重名,开发的时候是会注意到,功能出现问题,测试的时候也能测出来。但显然第二种方式比较符合开发规范。

    原文出处:

    https://segmentfault.com/q/1010000006776513/a-1020000006776587

  • 相关阅读:
    C#关机代码实例详解
    如何设计通用的网站模板
    C# XML解析方式实例解析1
    ASP.NET配置错误页面浅析
    几种常用的C#排序方法简介
    简述C# XML解析方法的特点及应用
    请不要相信
    浅谈ASP.NET Forms验证
    设计友好的错误信息页面
    详解.NET中容易混淆的委托与接口
  • 原文地址:https://www.cnblogs.com/ryelqy/p/12107758.html
Copyright © 2011-2022 走看看