我不知道箭头函数是否绑定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].这是怎么回事?
数据表是否支持服务器端检索数据,其中rocordsTotal计数事先未知?
我们有数据,其中获取总计数的查询几乎与查询所有记录一样昂贵.如果有一种方法让数据表知道recordsTotal计数未知,那将是必要的.此类功能未记录在案.是否支持?
更新1: 我想我没有完全解释我的问题,并试图问一个抽象的版本.我正在使用datatables.net/extensions/scroller插件,它适用于ajax选项.如果我对recordsTotal使用大数字,那么用户可以滚动到按钮,我没有数据显示在那里.分页也是如此,用户可以点击可能不存在的页码.
我希望浏览器在发生类型错误时显示错误消息.
错误,如无法读取属性的未定义或未定义的引用.
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 中去除 json 注释?我认为正则表达式将是一种简洁的方式。
{
"filed": { // comments
"n": 1 /* multi-line ...
comments */
},
"field2": " // comments in string , /* here */ "
}
Run Code Online (Sandbox Code Playgroud)
应该在上面的例子上工作。
注意:字符串中的意见应不会被删除。
更新:我知道我的 json 注释无效,但为了简单起见,我想拥有它们然后删除它们,我看到很多工具都支持解析带有注释的 json。
更新 2:上面的例子本身是一个字符串,我没有解释(抱歉),现在看到一些答案认为它是一个 js 代码。
更新 3:我再次忘记将键名放在双引号中,更新了问题。
看看这个例子:
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吗?
有没有可能是浏览器之间的队列中添加其他任务A和B?
注意:没有A或B函数正在向事件循环添加任何新任务.
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吗?
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) React 原生文档提供了一个用 java 编写的Toast 模块示例。
同样的例子在 Kotin 中是什么样子的?
android项目的配置有什么特别的步骤吗?
给定
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 << ' ') , ...);
以下是安全的吗?
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迭代中移动它?
我希望我的函数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) javascript ×5
typescript ×2
c++ ×1
c++11 ×1
c++17 ×1
datatable ×1
ecmascript-6 ×1
es6-promise ×1
jquery ×1
json ×1
kotlin ×1
react-native ×1
regex ×1
settimeout ×1