zoukankan      html  css  js  c++  java
  • 声明函数有些以分号结尾,有些不以分号结尾,有什么不同

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

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

    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
    
  • 相关阅读:
    负环操作 的队列
    The Prices(有依赖性的状压dp)(去不同商店买东西先花不同路费)
    BFS
    滚动数组(细节)(坑点)
    P1908 逆序对(细节)(树状数组解法)
    head
    DaoVoice JS 代码接入示例
    DaoVoice JS 代码接入示例
    DaoVoice JS 代码接入示例
    DaoVoice JS 代码接入示例
  • 原文地址:https://www.cnblogs.com/ae6623/p/15286446.html
Copyright © 2011-2022 走看看