相关疑难解决方法(0)

原始值与参考值

我读了一本名为"面向Web开发人员的专业Javascript"的书,它说:"变量由参考值或原始值指定.参考值是存储在内存中的对象".然后它没有说明如何存储原始值.所以我猜它没有存储在内存中.基于此,当我有这样的脚本:

var foo = 123;
Run Code Online (Sandbox Code Playgroud)

Javascript如何记住foo变量供以后使用?

javascript

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

为什么不使用Number作为构造函数?

我在JSLint中输入了这个语句:

var number = new Number(3);
Run Code Online (Sandbox Code Playgroud)

并收到以下消息:

不要使用Number作为构造函数.

这是为什么?该语句正在创建一个数字对象,而不是原始值,所以我不明白为什么使用new是一个问题.

编辑:感谢所有的回复.他们让我进一步思考,所以我在这里发布了一个后续问题.

javascript oop constructor jslint

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

如何在JavaScript中转义和取消引用?

这是一段很短的代码:

var utility = {
    escapeQuotes: function(string) {
        return string.replace(new RegExp('"', 'g'),'\\"');
    },
    unescapeQuotes: function(string) {
        return string.replace(new RegExp('\\"', 'g'),'"');
    }
};

var a = 'hi "';

var b = utility.escapeQuotes(a);
var c = utility.unescapeQuotes(b);

console.log(b + ' | ' + c);
Run Code Online (Sandbox Code Playgroud)

我希望这段代码能够正常运行,但结果却收到了:

hi \" | hi \"
Run Code Online (Sandbox Code Playgroud)

如果我将unescapeQuotes方法中新的RegExp构造函数的第一个参数更改为4个反斜杠,则一切都按预期开始工作.

string.replace(new RegExp('\\\\"', 'g'),'"');
Run Code Online (Sandbox Code Playgroud)

结果:

hi \" | hi " 
Run Code Online (Sandbox Code Playgroud)

为什么需要四个反斜杠作为新RegExp构造函数的第一个参数?为什么它只与其中2个一起使用?

javascript regex string replace

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

标签 统计

javascript ×3

constructor ×1

jslint ×1

oop ×1

regex ×1

replace ×1

string ×1