逗号运算符作为回报

Comma operator in return

本文关键字:回报 运算符      更新时间:2023-09-26

我正在从一页阅读JS,这就是我发现的(源代码被谷歌Chrome开发工具混淆了):

var db = function(a) {
    return a.replace(/[^'w's'.'|`]/g, 
    function(b) {
        return "''" + b
    })
};

第一个逗号运算符操作数(a.replace()操作数)有什么技巧吗?

在我看来,a.replace(/[^'w's'.'|``]/g,部分是完全多余的,可以删除。

我错过了什么吗?

它不是逗号运算符,而是调用.replace的简单参数列表 - 请注意括号。

你的去混淆器最好像这样缩进它:

return a.replace(/[^'w's'.'|`]/g, function(b) {
    return "''" + b;
});

顺便说一句,该函数可以用简单的字符串"''$&"代替。

没有逗号运算符。

请参阅有关替换的文档

newstring = str.replace(regexp, function);

格式不佳使其难以阅读。

它基本上在做

a.replace(/([^'w's'.'|`])/g, "''$1");