• 声明函数有些以分号结尾,有些不以分号结尾,有什么不同


    今天遇到一个很有意思的问题「声明函数有些以分号结尾,有些不以分号结尾,有什么不同」

    举个例子, 是否有分号,取决于下一行执行代码,是否有类似()自执行函数

    1.无分号声明

    const foo = function() {
      console.log("first");
    } // 结尾没有分号,遇到下面的代码
    
    //执行无问题
    (() => console.log("first"))();
    

    2.有分号声明

    const foo = function() {
      console.log("first");
    }; // 结尾有分号,遇到下面的代码
    
    //执行无问题
    (() => console.log("first"))();
    

    12我们可以看出来,有代码块 {} 的声明,有无分号都无问题,js编译和执行都ok

    3.无分号声明

    
    const foo = () => console.log("first") // 结尾没有分号,遇到下面的代码,报错无法执行
    (() => console.log("first"))();
    
    

    4.有分号声明

    const foo = () => { console.log("first") }; // 结尾有分号,遇到下面的代码,无问题
    (() => console.log("first"))();
    
    

    34可以看出来,代码块{}之后又无分号,跟着的下一行自执行函数都可以正常运行,但是如果没有{}代码块+下一行有自执行函数,则报错

    比如如下错误实例

    const a = [1,2,3,4] // 结尾无分号,遇到下一行报错
    (() => console.log("error"));
    
    //ncaught TypeError: [1,2,3,4] is not a function
        at <anonymous>:2:1
    
  • 相关阅读:
    My SQL
    弹窗
    DBDA
    ThinkPHP验证码与文件上传
    ThinkPHP表单验证
    ThinkPHP增删改
    ThinkPHP模型(查询)
    ThinkPHP跨控制器调用方法
    Superset安装
    Presto资源组配置
  • 原文地址:https://www.cnblogs.com/ae6623/p/15286446.html
Copyright © 2020-2023  润新知