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
    
  • 相关阅读:
    ueditor问题解决
    Odoo内部视图格式——widget
    Odoo进销存业务学习笔记
    Odoo权限设置机制
    Odoo配置文件
    Odoo——self的使用
    Odoo 启动选项
    Yiiyii2.0将高级模板的入口文件移到根目录
    Xmanager xbrower 远程linux下的应用(pycharm phpstorm)
    mysql backup
  • 原文地址:https://www.cnblogs.com/ae6623/p/15286446.html
Copyright © 2011-2022 走看看