小编Ami*_*sta的帖子

ES6箭头函数是否有自己的参数?

我不知道箭头函数是否绑定arguments到词法范围.

看一下这个例子(可以使用相同的概念this):

var b = function() { return () => console.log(arguments); };
b(1,2,3)(4,5,6); // different result of chrome vs FF.
Run Code Online (Sandbox Code Playgroud)

当我在Chrome上运行时,我得到了[1,2,3],但在Firefox上,我得到了[4,5,6].这是怎么回事?

javascript ecmascript-6 arrow-functions

31
推荐指数
2
解决办法
2780
查看次数

数据表服务器端处理行数未知

数据表是否支持服务器端检索数据,其中rocordsTotal计数事先未知

我们有数据,其中获取总计数的查询几乎与查询所有记录一样昂贵.如果有一种方法让数据表知道recordsTotal计数未知,那将是必要的.此类功能未记录在案.是否支持?

更新1: 我想我没有完全解释我的问题,并试图问一个抽象的版本.我正在使用datatables.net/extensions/scroller插件,它适用于ajax选项.如果我对recordsTotal使用大数字,那么用户可以滚动到按钮,我没有数据显示在那里.分页也是如此,用户可以点击可能不存在的页码.

javascript datatable jquery

9
推荐指数
1
解决办法
1998
查看次数

es6承诺吞下类型错误

我希望浏览器在发生类型错误时显示错误消息.
错误,如无法读取属性的未定义未定义的引用.

new Promise(function(resolve,reject){
    // do stuff ...
    reject('something logical is wrong');
}).catch(e => console.error(e));

new Promise(function(resolve,reject){
    // do stuff, and a syntax error :/
    var a = { };
    a.something.otherthing = 1; /* we have an error here */
    // ... 
}).catch(e => console.error(e));
Run Code Online (Sandbox Code Playgroud)

在第一个例子中,错误是逻辑错误,并且可以在catch(..)块中捕获它. 但在第二个例子中,它是一个明显的开发错误,它在开发新东西时一直发生.我不想抓住它,我希望浏览器像控制台中的其他错误一样向我显示错误.我希望能够在异常上打开chrome暂停并查看其他变量的状态.我想在控制台中看到堆栈跟踪. 我希望它像一个正常的错误.

任何的想法?

javascript es6-promise

6
推荐指数
1
解决办法
665
查看次数

如何在javascript中去除json注释

如何在 javascript 中去除 json 注释?我认为正则表达式将是一种简洁的方式。

{
    "filed": { // comments
         "n": 1 /* multi-line ...
                                 comments */
    },
    "field2": " // comments in string , /* here */ "
}
Run Code Online (Sandbox Code Playgroud)

应该在上面的例子上工作。
注意:字符串中的意见应不会被删除。

更新:我知道我的 json 注释无效,但为了简单起见,我想拥有它们然后删除它们,我看到很多工具都支持解析带有注释的 json。

更新 2:上面的例子本身是一个字符串,我没有解释(抱歉),现在看到一些答案认为它是一个 js 代码。

更新 3:我再次忘记将键名放在双引号中,更新了问题。

javascript regex json

6
推荐指数
2
解决办法
6212
查看次数

Javascript事件队列是否是一个简单的FIFO?

看看这个例子:

function A() { console.log('A'); }
function B() { console.log('B'); }
// and then i setTimeout(fn, 0) both of them
setTimeout(A, 0);
setTimeout(B, 0);
Run Code Online (Sandbox Code Playgroud)

它会保证B会立即运行A吗?
有没有可能是浏览器之间的队列中添加其他任务AB

注意:没有AB函数正在向事件循环添加任何新任务.

var callbacks = [];
// then add a bunch of callbacks ... (none adds events to event queue)
//case 1:
callbacks.forEach(cb => setTimeout(cb,0))
//case 2:
setTimeout(function() {
   callbacks.forEach(cb => cb());
},0);
Run Code Online (Sandbox Code Playgroud)

case 1vs 中执行回调的顺序有什么不同case 2吗?

javascript settimeout

6
推荐指数
1
解决办法
2309
查看次数

C++中decltype的打字稿等价物?

decltype在C++中返回一个表达式的类型,例如decltype(1+1)将是int.

请注意,表达式不会被执行或编译.

打字稿有类似的东西吗?

我认为应该工作的示例用例:

const foo = () => ({a: '', b: 0});
type foo_return_type = decltype(foo());
// foo_return_type should be '{a: stirng, b: number}`

import { bar } from './some_module';
type my_type = decltype(new bar().some_method());
Run Code Online (Sandbox Code Playgroud)

typescript

5
推荐指数
1
解决办法
400
查看次数

在 Kotlin 中编写 React Native android 模块?

React 原生文档提供了一个用 java 编写的Toast 模块示例。

同样的例子在 Kotin 中是什么样子的?
android项目的配置有什么特别的步骤吗?

kotlin react-native react-native-android

5
推荐指数
1
解决办法
2693
查看次数

如何使用折叠表达式在(cout << ... ... << args)中插入空格?

给定

template<typename ...Types>
void print(Types&& ...args) {
    (cout << ... << args);
}
// ....
print(1, 2, 3, 4); // prints 1234
Run Code Online (Sandbox Code Playgroud)

如何添加空间以便我们得到1 2 3 4

更新:

正确答案: ((std::cout << args << ' ') , ...);

fold-expression c++17

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

std :: move(key)迭代unordered_map <string,string>?

以下是安全的吗?

unordered_map<string, string> my_map;
unordered_map<string, double> new_map;
for(auto&& [key, value] : my_map) {
    new_map.insert({std::move(key), std::stod(value)});
}
Run Code Online (Sandbox Code Playgroud)

我没有my_map在循环之后使用,是否可以从key迭代中移动它?

c++ unordered-map c++11

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

打字稿中的各种变体?

我希望我的函数memoize(fn)返回与类型相同的另一个函数fn

我有一个如下的丑陋解决方案:
编写可变参数泛型的正确方法是什么?

export const memoize = <FN>(fn: FN) : FN => {
  const cache = { };
  const run : any = (...args) => {
    const key = JSON.stringify(args);
    if(!cache[key]) {
      cache[key] = (fn as any)(...args).catch(up => {
        delete cache[key];
        throw up;
      });
    }
    return cache[key];
  };
  return run as FN;
}

const get = memoize((url: string) => fetch(url, {method: 'GET'}));
Run Code Online (Sandbox Code Playgroud)

typescript

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