相关疑难解决方法(0)

JavaScript中的变量范围是什么?

javascript中的变量范围是什么?它们的内部是否与函数外部相同?或者甚至重要吗?另外,如果变量是全局定义的,那么它们存储在哪里?

javascript variables scope var function

1952
推荐指数
18
解决办法
48万
查看次数

什么是'Currying'?

我在几篇文章和博客中看到了对curried函数的引用,但我找不到一个好的解释(或者至少有一个有意义的解释!)

functional-programming terminology definition currying

628
推荐指数
12
解决办法
15万
查看次数

箭头函数与函数声明/表达式:它们是等效/可交换的吗?

规范问题如果在用箭头函数替换函数声明/表达式后发现有关问题的问题,请将其作为此副本的副本关闭.

ES2015中的箭头功能提供了更简洁的语法.我现在可以用箭头功能替换所有函数声明/表达式吗?我需要注意什么?

例子:

构造函数

function User(name) {
  this.name = name;
}

// vs

const User = name => {
  this.name = name;
};
Run Code Online (Sandbox Code Playgroud)

原型方法

User.prototype.getName = function() {
  return this.name;
};

// vs

User.prototype.getName = () => this.name;
Run Code Online (Sandbox Code Playgroud)

对象(文字)方法

const obj = {
  getName: function() {
    // ...
  }
};

// vs

const obj = {
  getName: () => {
    // ...
  }
};
Run Code Online (Sandbox Code Playgroud)

回调

setTimeout(function() {
  // ...
}, 500);

// vs

setTimeout(() => {
  // ...
}, …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 arrow-functions

449
推荐指数
2
解决办法
12万
查看次数

返回函数的函数

我坚持使用'返回函数的函数'这个概念.我指的是Stoyan Stefanov撰写的"面向对象的Javascript"一书.

片段一:

    function a() {
      
        alert('A!');
    
        function b(){
            alert('B!'); 
        }
    
        return b();
    }
    
    var s = a();
    alert('break');
    s();
Run Code Online (Sandbox Code Playgroud)

输出:

A!
B!
break
Run Code Online (Sandbox Code Playgroud)

小片二

function a() {
  
    alert('A!');

    function b(){
        alert('B!'); 
    }

    return b;
}

var s = a();
alert('break');
s();
Run Code Online (Sandbox Code Playgroud)
输出:

A!
break
B!
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我返回bb()上面的片段之间的区别吗?

javascript

98
推荐指数
6
解决办法
17万
查看次数

Javascript中的高阶函数

我正在阅读Eloquent JavaScript(新版本),并且我在更高阶函数上达成了一部分,我对以下代码中发生的事情感到困惑.

function noisy(f) {
  return function(arg) {
    console.log("calling with", arg);
    var val = f(arg);
    console.log("called with", arg, "- got", val);
    return val;
  };
}
noisy(Boolean)(0);
// ? calling with 0
// ? called with 0 - got false
Run Code Online (Sandbox Code Playgroud)
  1. 为什么这个函数的调用会像这样嘈杂?(布尔)是演员吗?为什么演员?返回值?还是论点?为什么不(布尔值)嘈杂(0)如果它的返回值.或者噪声((布尔值)0)如果参数是被转换的参数.

    noisy(Boolean)(0)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 这一行发生了什么?f()甚至定义在哪里?

    var val = f(arg);
    
    Run Code Online (Sandbox Code Playgroud)

javascript function higher-order-functions

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

javascript 回调函数中的参数从何而来?

我理解回调函数的本质在于,该函数作为参数传递给另一个函数后会再次执行。但是,我对回调函数中的变量来自何处感到困惑,如下面的 node.js 示例所示:

router.get('/', function(req, res){
    res.render('index', {});
});
Run Code Online (Sandbox Code Playgroud)

变量 req 和 res 是如何填充的?一个解释我如何只调用 res.render(...) 而不声明 res 自己的例子将不胜感激。

javascript node.js

7
推荐指数
1
解决办法
801
查看次数