node里"asdf".split('')的结果里为什么字符是单引号包裹的?
发布于 12 年前 作者 lyuehh 5344 次浏览 最后一次编辑是 8 年前

如题:

> "asdf".split('')
[ 'a', 's', 'd', 'f' ]

我试了chrome下

> 'asdf'.split('')
["a", "s", "d", "f"]

node是出于什么考虑呢?

12 回复

真是注意不到, 照说同是 V8 应该是一样的… 只能看源码了…

这两个有什么区别?

不是…一样的么?

我打算直接把结果写到.json的文件里,而json格式要求字符串都是双引号的。。 然后发现直接JSON.stringify("asdf".split(''))就可以了。。

这是当然的, 人家名字就是 JSON

v8版本是不同的,另外讨论这个没什么意义

@jiyinyiyong 恩,需要得到json字符串还是直接JSON.stringify来的方便

Node的REPL中对对象格式化的实现与Chrome的控制台实现得有点不一样而已。 这个与V8无关。

另外,这个只是用来给你自己看的,程序实际运行的时候又不是这样的,有神马好纠结的呢?

参考:https://github.com/joyent/node/blob/master/lib/util.js#L204

js种单引号,双引号完全一样,所以这个问题没什么价值

字符和字符串的区别

您是C程序员吧? js没有字符类型,只要字符串

说白了,nodejs 通过控制台打印的东西,字符串统一表示为单引号方式而已。

回到顶部