为什么连接“”比在前一句之后留空格更好?

时间:2014-08-12 04:08:55

标签: javascript string-concatenation

为什么在某些教程中(例如,Codecademy'),教师(及其指令)倾向于连接空格" "而不是在前一个字符串中添加空格?

他们为什么喜欢这样做......

var nameString = function (name) {
    return "Hi, I am" + " " + name;
};

console.log(nameString("jim"));

而不是这个?

var nameString = function (name) {
    return "Hi, I am " + name;
};

console.log(nameString("jim"));

注意"Hi, I am " am 之后的空格。

这个选择背后是否存在原因,或者它纯粹基于可读性?

5 个答案:

答案 0 :(得分:2)

只是为了让代码更清晰易读。第一种语法通常不会与静态文本一起使用,但会带有变量,因此您永远不会错过这个空间。

var1 + " " + var2

这样你就确保每次给它一个值时,你永远不会错过var1末尾的空格

答案 1 :(得分:2)

如果您正在进行国际化的编码工作,那么第一种形式就有优势。

超简单的例子......

var text = {en: {hello: "Hello"}, sp: {hello: "Hola"}};
var lang = "en";
var name = "John";

console.log(text[lang].hello + " " + name);

使用这种风格,翻译人员永远不必担心尾随空格,并且你已经使一切都保持一致。

答案 2 :(得分:1)

你可以写任何一种方式。没有办法可以说是最好的。你喜欢编码很重要。

无论如何我也会选择第一个。见下面是一个例子:

var nameString = function (name) {
    var str = "Hi, I am"; // Often we don't have space after last of string
    return str + " " + name;
};

答案 3 :(得分:1)

举个例子,没有区别。通常它只是出于习惯而发展

通常如果你使用变量,a +" " + b,将空格放在变量本身是一个坏习惯,因为它限制了如何将它们组合在一起。

所以,

"Hi, I am" + " " + name;

可能会成为

greeting + " " + name

并且它已经是正确的空白格式

答案 4 :(得分:0)

我更喜欢这个

var nameString = function (name) {
    return "Hi, I am " + name;
};

console.log(nameString("jim"));

超过这个

var nameString = function (name) {
    return "Hi, I am" + " " + name;
};

console.log(nameString("jim"));

因为字符串在Javascript中是不可变的,并且连接三个字符串而不是两个字符串似乎是一个坏习惯。但是,对于如此少量的文本,它不会成为性能问题。

所以我认为人们只是为了可读性而这样做,因为它绝对不是性能加分。

Here's关于Javascript字符串和连接的不变性的更多信息: