zoukankan      html  css  js  c++  java
  • 函数声明 和 函数表达式 的区别

    今天看了几篇关于函数声明和表达式的文章,总结一下。希望有不正确的,大家提提意见。

    函数声明 :  function get(){alert(1)}

    函数表达式   :  var a=function(){alert(1)}

    他们的执行效果是相同的,主要是总结下一些区别:

    一,函数声明可以通过解析器将函数声明放置到执行环境中并放在源代码的顶部

        如:get();

             function get(){alert(2)}

        如果用函数表达式

       如:get();

             var get=function(){alert(a)}

       就会报错"TypeError: undefined is not a function"

    二,

    ~function get(){      

        alert(1111);  

      }();

    看起来很奇怪,如果去掉前面的~,就会报错 SyntaxError: Unexpected token ),这是因为javascript不允许在函数声明的后面直接加(),而函数表达式没有这个限制。通过~可以解析成函数表达式,在函数声明前面加上『!,+,-』等操作符也是可行的

    var get=function(){alert(1111)}(); 这样是不会报错的,但是这样会引入一个get变量,污染环境,也可以可以:

    (function(){alert(1111)})()

  • 相关阅读:
    P2519 [HAOI2011]problem a
    P1084 疫情控制
    P1941 飞扬的小鸟
    NOIP填坑计划
    P2831 愤怒的小鸟
    AGC 16 D
    P3960 列队
    Python3爬虫相关软件,库的安装
    软件理论基础—— 第一章命题逻辑系统L
    软件理论基础——导论
  • 原文地址:https://www.cnblogs.com/startmyways/p/2972821.html
Copyright © 2011-2022 走看看