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

  • 相关阅读:
    。。。。。。
    数据库
    python基础
    。。。。
    drf
    CRM笔记梳理
    人生苦短,我学PYTHON
    React的初步了解
    递归与迭代比较
    有没有大佬会很标准的三层架构
  • 原文地址:https://www.cnblogs.com/ryelqy/p/12107758.html
Copyright © 2011-2022 走看看