当前位置: 首页 > 面试题库 >

var functionName = function(){}与function functionName(){}

江曦
2023-03-14
问题内容

我最近开始维护别人的JavaScript代码。我正在修复错误,添加功能,还试图整理代码并使之更加一致。

以前的开发人员使用了两种方法来声明函数,如果有背后的原因,我将无法解决。

两种方式是:

var functionOne = function() {
    // Some code
};



function functionTwo() {
    // Some code
}

使用这两种不同方法的原因是什么,每种方法的利弊是什么?有什么方法可以用一种方法不能完成的吗?


问题答案:

区别在于它functionOne是一个函数表达式,因此仅在到达该行时才定义,而是functionTwo函数声明,并在其周围的函数或脚本html" target="_blank">执行后(由于提升)而定义。

例如,一个函数表达式:

// TypeError: functionOne is not a function

functionOne();



var functionOne = function() {

  console.log("Hello!");

};

并且,一个函数声明:

// Outputs: "Hello!"

functionTwo();



function functionTwo() {

  console.log("Hello!");

}

这也意味着您不能使用函数声明有条件地定义函数:

if (test) {
   // Error or misbehavior
   function functionThree() { doSomething(); }
}

上面的定义实际上functionThreetest的值无关,除非use strict有效-除非有效,在这种情况下,它只会引发错误。



 类似资料:
  • 问题内容: 在查看Twitter Bootstrap Javascript中编写的一些代码时,看起来他们正在调用立即调用的匿名函数,如下所示: 在我传统上看过的同一件事中,这种方式就是这样完成的: 第一种方法似乎有点笨拙,而且我不确定用这种方法而不是第二种方法有什么好处或理由吗? 请注意,我了解它是如何工作的,我想了解他们为什么选择这种方式。 问题答案: 缩小后少一个字符。 本应处理,而其他的Ja

  • 问题内容: vs 和我应该以表格或新方式书写的区别是什么? 如果我加载了Google api是更好的方法?还是同一件事? 我也看到人们使用 有人可以帮我,我迷路了。当我不知道所写的代码时,我会烦扰我。我想我应该阅读一下图书馆。全部都定义为同一件事吗? 问题答案: 两种方式是等效的,我个人更喜欢第二种方式,这只是准备文档的捷径。 关于构造,您实际上不需要使用运算符,如果不需要,jQuery会在内部使

  • Type: Function 函数对象的方法。 另请参见: MDN Function Function: Function.from 如果传递的参数是一个函数,它会返回自身。否则,它会返回一个可以返回传递参数的函数。 语法: var foo = Function.from(obj); 参数: obj - (mixed)如果该参数是一个函数,它只会返回自身。否则,它会返回一个可以返回传递参数的函数。

  • 头文件: "boost/function.hpp" 头文件 "function.hpp" 包含了带有从0到10个参数的函数原型(这是实现所定义的,在当前实现中缺省的上限就是10[1])。你也可以根据你的需要,只包含相应参数数量的头文件,文件名为 "function/functionN.hpp", 其中N可以从0到10。Boost.Function有两种不同的接口,其中一种的好处在于它的语法接近于函

  • 描述: 描述一个函数或方法。 别名: @func @method Syntax(语法) @function [<FunctionName>] Overview(概述) @function标记一个对象作为一个函数,即使它可能不会出现在解析器中。它设置doclet的@kind为'function'。 Examples(例子) 例如,使用@function标记为一个函数: /** @function *

  • 目标 无具体目标 知识点 理解 js 中 var 的作用域 了解闭包的概念 理解 this 的指向 课程内容 es6中新增了 let 关键词,与块级作用域,相关知识参考: http://es6.ruanyifeng.com/ var 作用域 先来看个简单的例子: var parent = function () { var name = "parent_name"; var age = 1