为什么在某些教程中(例如,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 之后的空格。
这个选择背后是否存在原因,或者它纯粹基于可读性?
答案 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字符串和连接的不变性的更多信息: