+
我已经看到逗号在 Javascript 中连接原始数据类型,并且想知道使用逗号与说运算符以及 .concat() 函数是否有任何区别?
所以下面的例子给了我 abc
var value1 = a, value2 = b, value3 = c;
document.write(value1,value2,value3);
+
我已经看到逗号在 Javascript 中连接原始数据类型,并且想知道使用逗号与说运算符以及 .concat() 函数是否有任何区别?
所以下面的例子给了我 abc
var value1 = a, value2 = b, value3 = c;
document.write(value1,value2,value3);
苹果和橙子。您的示例中没有连接任何内容;您只需为write()
函数指定 3 个参数。
document.write(exp1, exp2, exp3, ...)
接受多个参数,当给定多个参数时,它将遍历所有参数,就像您write()
单独调用每个参数一样。
但是,逗号在评估表达式时确实有用,它用于处理多个表达式并返回最后一个。要查看实际情况,您需要将参数包装在一组括号中,以便形成单个参数:
document.write("a","b","c") // abc
document.write( ("a", "b", "c") ) // c
alert("a","b","c") // a
alert( ("a","b","c") ) // c
alert( (x=2, ++x) ) // 3
由于字符串连接是计算中最繁琐的操作之一,因此使用document.write
各种参数会表现得更好。
看这个测试(它有时会在 IE 中挂起,所以请使用其他浏览器)http://jsperf.com/document-write-vs-concatenation
解释:
document.write("val1", "val2", "val3");
相当于
document.write("val1");
document.write("val2");
document.write("val3");
因此,速度要快得多,因为它不会连接字符串。
在大多数浏览器(IE <= 8,Gecko)中,使用 + 运算符的字符串连接性能很差。
例如,在我的公司中,我们必须一块一块地编写一个大的 HTML 片段。在这种情况下,我们有这样的事情:
var id = 123;
var html = [];
html.push('<div id="', id, '">hello</div>');
var result = html.join('');
在你有很多连接的情况下,这比下面的要好得多:
var id = 123;
result = '<div id="' + id + '">hello</div>';
所以要回答你的问题 - 这真的取决于情况。如果你将许多字符串连接在一起,你不应该使用 + 运算符,因为性能很差。但是在 99% 的情况下,性能提升是如此之小,以至于尝试其他任何东西都会很痛苦,这应该没问题。但是如果您实际上可以选择逗号分隔(例如在 array.push 或 document.write 的情况下),那么您绝对应该利用它。