小编Eva*_*oll的帖子

在Javascript中用大写替换正则表达式捕获组

我想知道如何用JavaScript中的大写替换捕获组.这是我迄今为止尝试过的一个简化版本,它不起作用:

> a="foobar"
'foobar'
> a.replace( /(f)/, "$1".toUpperCase() )
'foobar'
> a.replace( /(f)/, String.prototype.toUpperCase.apply("$1") )
'foobar'
Run Code Online (Sandbox Code Playgroud)

你能解释一下这段代码有什么问题吗?

javascript regex replace uppercase

67
推荐指数
4
解决办法
5万
查看次数

v8 const,let和var的JavaScript性能影响?

无论功能差异如何,使用新关键字"let"和"const"对"var"的性能有任何广义或特定的影响吗?

运行程序后:

function timeit(f, N, S) {
    var start, timeTaken;
    var stats = {min: 1e50, max: 0, N: 0, sum: 0, sqsum: 0};
    var i;
    for (i = 0; i < S; ++i) {
        start = Date.now();
        f(N);
        timeTaken = Date.now() - start;

        stats.min = Math.min(timeTaken, stats.min);
        stats.max = Math.max(timeTaken, stats.max);
        stats.sum += timeTaken;
        stats.sqsum += timeTaken * timeTaken;
        stats.N++
    }

    var mean = stats.sum / stats.N;
    var sqmean = stats.sqsum / stats.N;

    return {min: stats.min, max: stats.max, mean: mean, …
Run Code Online (Sandbox Code Playgroud)

javascript performance v8 const let

66
推荐指数
3
解决办法
2万
查看次数

全新安装后如何登录并验证Postgresql?

在薄荷ubuntu上新安装了postgres 8.4.如何使用psql为postgres创建用户并登录?

当我输入psql时,它只是告诉我

psql: FATAL: Ident authentication failed for user "my-ubuntu-username"
Run Code Online (Sandbox Code Playgroud)

authentication passwords postgresql ident

63
推荐指数
5
解决办法
10万
查看次数

Perl 5.20和智能匹配的命运何时?

我刚刚安装了Perl 5.18,我收到很多这样的警告,

given is experimental at .\[...].pl line [...].
when is experimental at .\[...].pl line [...].
Smartmatch is experimental at C:/strawberry/perl/site/lib/[...] line [...].
Run Code Online (Sandbox Code Playgroud)

看看这些警告 - 我从未在任何地方听到过这些警告 - 我只能在两个地方找到这个警告,

Perl Delta仍然能够最大限度地提及这些功能正在发生的事情,它被埋在吊舱中的一半,

在v5.10.0中添加并在v5.10.1中进行了重大修订的智能匹配一直是一个常见的投诉点.尽管有许多方法可用,但它也证明了Perl的用户和实现者都存在问题和困惑.关于如何最好地解决问题,已经提出了许多建议.很明显,smartmatch几乎肯定会在将来改变或消失.不建议依赖其当前行为.现在,当解析器看到〜,给定或何时发出警告.

我对过去10年中Perl最显着的变化如何被拉动感到困惑.我已经开始使用given,when以及smartmatch所有地方.还有关于这些未来的更多信息吗?怎么有人发现它们"令人困惑?" 这些功能如何变化?是否有计划使用模块实现这些功能?

perl perl5 smartmatch

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

将列添加为外键使得外键约束中引用的ERROR列不存在

我有以下设置,

CREATE TABLE auth_user ( id int PRIMARY KEY );
CREATE TABLE links_chatpicmessage ();
Run Code Online (Sandbox Code Playgroud)

我正在尝试将一个名为senderto 的列添加links_chatpicmessage到另一个名为auth_user's idcolumn的表中.

为实现上述目标,我在终端上尝试以下方法:

ALTER TABLE links_chatpicmessage
  ADD FOREIGN KEY (sender)
  REFERENCES auth_user;
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误:

错误:外键约束中引用的列"sender"不存在

我该如何解决?

database postgresql foreign-keys alter-table

62
推荐指数
4
解决办法
7万
查看次数

保留未定义的JSON.stringify否则将删除

在执行JSON.stringify(hash)时如何保留未定义的值?

这是一个例子:

var hash = {
  "name" : "boda",
  "email" : undefined,
  "country" : "africa"
};

var string = JSON.stringify(hash);

> "{"name":"boda","country":"africa"}"
Run Code Online (Sandbox Code Playgroud)

电子邮件从JSON.stringify中消失了.

javascript json

60
推荐指数
5
解决办法
2万
查看次数

JavaScript ES6类是否与异步代码库一起使用?

作为一种组织模式,ES6类可以为异步代码提供什么.下面是ES7 async/await的示例,ES6类可以在ES7中使用异步方法或构造函数吗?

我可不可以做:

class Foo {
    async constructor() {
        let res = await getHTML();
        this.res = res
    }
}
Run Code Online (Sandbox Code Playgroud)

而且,如果不是,构造函数应如何工作呢?

class Foo {
    constructor() {
        getHTML().then( function (res) {
            this.res = res
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果这些模式都不起作用,那么ES6中的构造函数(以及类)是否class支持对对象状态进行操作的任何形式的异步性?或者,它们仅用于纯粹的同步代码库吗?上面的例子在构造函数中,但它们不需要是......将问题再推下一级......

class Foo {
    myMethod () {
      /* Can I do anything async here */
    }
}
Run Code Online (Sandbox Code Playgroud)

或者,用吸气剂......

class Foo {
    get myProp() {
        /* Is there any case that this is usefully asynchronous */
    }
}
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一例子是在同一个方法/构造函数/ getter中并行运行某些东西,但是要在结束之前解决整个问题.我只是感到困惑,因为它似乎完全异步库的所有推动,这只是混淆事情.除了教科书示例,我找不到一个他们有用的应用程序.

asynchronous ecmascript-6 es6-promise es6-class

56
推荐指数
4
解决办法
6万
查看次数

数组语法与指针语法和代码生成?

Richard Reese所着的"理解和使用C指针"一书中,它在第85页说

int vector[5] = {1, 2, 3, 4, 5};
Run Code Online (Sandbox Code Playgroud)

生成的代码与生成的代码vector[i]不同*(vector+i).该表示法vector[i]生成从位置向量开始的机器代码,从该位置移动 i位置,并使用其内容.符号*(vector+i)生成的机器代码从位置开始vector,添加 i到地址,然后使用该地址的内容.结果相同,生成的机器代码不同.这种差异对大多数程序员来说很少有意义.

你可以在这里看到摘录.这段经文是什么意思?在什么情况下,任何编译器都会为这两个编译器生成不同的 "移动"与基础之间是否存在差异,而"添加"基数是否存在差异?我无法让它在GCC上工作 - 生成不同的机器代码.

c arrays pointers pointer-arithmetic errata

54
推荐指数
5
解决办法
3306
查看次数

如何在Postgres 8.4中导入模块或安装扩展?

我正在尝试导入与8.4.1 postgres捆绑在一起的几个模块,并且所有这样做的命令(例如contrib.import等)都不起作用或找不到.请帮我.

postgresql import postgresql-8.4

51
推荐指数
2
解决办法
5万
查看次数

什么是Node.js中的Streams3,它与Streams2有什么不同?

我经常听说过Streams2和老流,但什么是Streams3?Thorsten Lorenz在这次演讲中提到了这一点.

我在哪里可以阅读它,Streams2和Streams3之间有什么区别.

在谷歌搜索,我也看到它在节点0.11.5更改日志中提到,

stream:简化流动,被动数据监听(streams3)(isaacs)

stream node.js

51
推荐指数
2
解决办法
7993
查看次数