zoukankan      html  css  js  c++  java
  • javascript的函数定义的区别

          javascript中函数定义通常有两种方法:

          1. 普通的函数定义:

    function f1 (){}

      2. 变量式函数定义:

    var f2 = function(){}

         还有一种定义方法是new Function,由于这种方法并不常用,这里就不做解释了。

         那这两种定义方法有什么不同呢?难道仅仅只是样子不同而已嘛?当然不是这样,我们来看个具体的例子吧,大家觉得以下代码的执行结果是什么?

    if (1 === 1) {
    tellAlert();
    } else{
    function tellAlert(){
    alert('hello');
    }
    }

         执行结果是:会提示“hello”
         那接下来这段代码呢?

    if (1 === 1) {
    tellAlert();
    } else{
    var tellAlert = function (){
    alert('hello');
    }
    }

         执行结果是:游览器不会提示“hello”,chrome中的控制台还会报错:

        

        从上例中,我们可以明显看出,两者很大的不同就是执行顺序不同,这是function语句在解析时会发生被提升的情况。也就是说不管function被放置在哪里,它都会被移动到被定义时所在作用域的顶层。这样的后果就是放宽了函数必须先声明后使用的要求。

       《javascript语言精粹》中推荐使用的方法是 var f1 = function()。这样能明确表示f1 是一个包含一个函数值的变量。

         而nodejs的源码中,定义函数的方法是function f1()。

         个人感觉,在控制自己的代码逻辑的基础上,直接用function f1()会更好点,代码会更清楚点。


    ·

  • 相关阅读:
    node项目发布pm2
    图片地址获取图片信息
    前端文件上传 获取文件大小 获取图片宽高
    前端上传图片预览
    vue按钮防暴力点击
    小程序父子组件之间的通信
    form表单
    es6-函数的扩展
    php的魔术常量以及类的模式方法
    OpenStack笔记
  • 原文地址:https://www.cnblogs.com/lengyuhong/p/2370687.html
Copyright © 2011-2022 走看看