相关疑难解决方法(0)

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

我最近开始维护其他人的JavaScript代码.我正在修复错误,添加功能,并尝试整理代码并使其更加一致.

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

这两种方式是:

var functionOne = function() {
    // Some code
};
Run Code Online (Sandbox Code Playgroud)
function functionTwo() {
    // Some code
}
Run Code Online (Sandbox Code Playgroud)

使用这两种不同方法的原因是什么?每种方法的优缺点是什么?有一种方法可以通过一种方法完成,而另一种方法无法完成吗?

javascript syntax idioms function

6645
推荐指数
32
解决办法
98万
查看次数

Javascript getElementById的简写

是否有JavaScript document.getElementById的简写?或者我有什么方法可以定义一个?而越发重复重复输入超过.

javascript

89
推荐指数
10
解决办法
3万
查看次数

为什么我不能在jQuery的document.ready()中定义函数?

如果我将它们放在document.ready()函数中,函数将显示为undefined:

$(document).ready(function(){
  function foo()
  {
    alert('Bar');
  }
});

foo(); // Undefined
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我确定我只是需要一些简单的理解:)

javascript jquery

62
推荐指数
3
解决办法
5万
查看次数

JavaScript匿名函数立即调用/执行(表达式与声明)

可能的重复:
JavaScript中的函数表达式与声明之间有什么区别?
解释JavaScript封装的匿名函数语法

为什么这个:

(function () {
    //code
}());
Run Code Online (Sandbox Code Playgroud)

还有这个:

var f = function () {
    //code
}();
Run Code Online (Sandbox Code Playgroud)

工作,而这:

function () {
    //code
}();
Run Code Online (Sandbox Code Playgroud)

才不是?它看起来完全一样 - 定义了匿名函数,并立即调用.有人可以从JavaScript/ECMAScript标准中引用它来解释这个吗?

更新:感谢大家的答案!所以这是关于函数表达式与函数声明的关系.请参阅此Stack Overflow答案,ECMAScript标准第13节,以及这篇精彩文章:命名函数表达式揭秘.

回顾一下答案:

  1. 第一个片段被解释为表达式,因为应用了分组运算符()- 请参阅ECMAScript标准第11.1.6节.

  2. 在第二个片段中,函数被解释为表达式,因为它位于赋值运算符的右侧部分=.

  3. 第三个片段没有任何允许解释器将函数作为表达式读取的东西,因此它被认为是一个声明,如果没有标识符则无效(Gecko允许它通过,但它会跟随下面的()分组操作符(因为它认为) )什么都不适用).

javascript anonymous-function

58
推荐指数
1
解决办法
2万
查看次数

Javascript函数定义语法

可能重复:
JavaScript:var functionName = function(){} vs function functionName(){}
在JavaScript中声明函数

我已经看到了两种不同的语法来定义javascript中的函数:

function f() {
   ...
}
Run Code Online (Sandbox Code Playgroud)

以及

var f = function() {
    ...
};
Run Code Online (Sandbox Code Playgroud)

这些有什么区别?其中一个被弃用了吗?

javascript syntax function

45
推荐指数
1
解决办法
3万
查看次数

我应该何时将函数存储到变量中?

我目前正在学习JavaScript,我不太明白何时将函数写入变量.

例如,以下两个代码块在Node.js中执行完全相同的操作:

 var onReq = function(req, res) {
   res.write('Hello');
 };

 http.createServer(onReq).listen(3000);
Run Code Online (Sandbox Code Playgroud)

function onReq(req, res) {
   res.write('Hello');
 }

 http.createServer(onReq).listen(3000);
Run Code Online (Sandbox Code Playgroud)



根据最佳实践,哪种方法最好?为什么?

javascript node.js

41
推荐指数
3
解决办法
4万
查看次数

方法与功能,以及其他问题

关于JS,这两者有什么区别?我知道方法与对象有关,但是混淆了函数的用途是什么?它们的语法有何不同?

另外,这两种语法之间的区别是什么:

var myFirstFunc = function(param) {
    //Do something
};
Run Code Online (Sandbox Code Playgroud)

function myFirstFunc(param) {
    //Do something
};
Run Code Online (Sandbox Code Playgroud)

另外,在使用函数之前,我在某处看到了我们需要做的事情:

obj.myFirstFunc = myFirstFunc;
obj.myFirstFunc("param");
Run Code Online (Sandbox Code Playgroud)

为什么需要第一行,它有什么作用?

对不起,如果这些是基本问题,但我开始使用JS而且很困惑.

编辑:对于最后一点代码,这就是我所说的:

// here we define our method using "this", before we even introduce bob
var setAge = function (newAge) {
  this.age = newAge;
};
// now we make bob
var bob = new Object();
bob.age = 30;
// and down here we just use the method we already made
bob.setAge = setAge;
Run Code Online (Sandbox Code Playgroud)

javascript methods function

34
推荐指数
4
解决办法
3万
查看次数

知道JavaScript函数表达式与函数声明,但这是什么?命名函数表达式?

可能重复:
JavaScript:var functionName = function(){} vs function functionName(){}
Javascript中的函数表达式与声明有什么区别?

我知道函数声明和表达式之间的区别,但是遇到了涉及函数名称的代码,并且想要了解运行它时会发生什么:

var abc = function def() {
    console.log("Wait! What??");
}
Run Code Online (Sandbox Code Playgroud)

我知道这不是JavaScript的一种方式,但只是想知道一些事情:

  1. 怎么了abc?为什么会这样?abc可以叫但不是def,为什么?
  2. 它是函数声明还是表达式?
  3. defundefined- 为什么?如果它应该是,是否有内存泄漏?
  4. 为什么abc.prototype功能def

谢谢

javascript oop

23
推荐指数
2
解决办法
1453
查看次数

浏览器是否真正逐行读取JavaScript还是多次通过?

我理解JavaScript是解释的而不是编译的.没问题.但是,我在这里继续阅读,JavaScript是"即时"执行的,并且每行读取一行.对于以下示例,这个想法让我感到困惑:

writeToConsole();

function writeToConsole() {
    console.log("This line was reached.");
}
Run Code Online (Sandbox Code Playgroud)

为了记录,这段代码将写入控制台就好了.仍然,浏览器如何知道exampleFunction()它是否尚未到达函数的存在?

换句话说,什么时候首先解释这个函数?

javascript browser interpreter

18
推荐指数
3
解决办法
7499
查看次数

将函数放在变量中的JavaScript优势?

我已经看到最近的代码示例将函数放在变量中,然后像普通函数一样调用函数.

如:

var myFunctionName = function() {
    Code Here...
}

myFunctionName();
Run Code Online (Sandbox Code Playgroud)

我相信更先进的场景有很多优点,但我只是好奇.

javascript variables function

9
推荐指数
2
解决办法
8065
查看次数