Javascript 中的长字符串拼接
字符串拼接是所有程序设计语言都需要的操作。当拼接结果较长时,如何保证效率就成为一个很重要的问题。C 语言的 strcat 函数直接操作内存,效率自然最高;C++ 的 string 类是可变的,本质上也是直接操作内存,效率也不在话下;Java 的 String 类不可变,字符串拼接意味着产生新对象,因此提供了专门用于字符串拼接的 StringBuffer 类,也保证了执行效率。
在 Javascript 中,大规模的字符串拼接虽不常见,但也并非没有。在这种情况下,传统的字符串拼接会比较慢:
<script>
function strcat1(count, substr) //将 count 个 substr 拼接在一起
{
var result = "";
for (var i = 0; i < count; ++i)
{
result += substr;
}
return result;
}
var begin = new Date();
strcat1(10000, "substr");
var end = new Date();
alert(end.valueOf() - begin.valueOf());
</script>
在笔者的机器上(下同)这段代码要执行 3 秒钟。有没有比较快的拼接方法?答案是肯定的,Javascript 也提供了一个类似 StringBuffer 的东西,那就是数组:
<script>
function strcat2(count, substr)
{
var buffer = [];
for (var i = 0; i < count; ++i)
{
buffer.push(substr);
}
return buffer.join("");
}
var begi
相关文档:
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetL ......
function object2String(obj)
{
var val, output = "";
if (obj)
{
output += "{";
for (var i in obj)
{
val = obj[i];
switch (typeof val)
{
case ("object"):if (val[0]){output += i + ":" + array2String(val) + &qu ......
前几天做网站的时候需要讲数据库中的时间读取到变量中进行使用,用到parseInt函数,讲字符转化为数字。今天测的时候发现问题了,当数据库中月份为09的时候就出问题了,用parseInt转换之后就成0了。好不解。测了好久,没有发现我代码中的问题,到google搜了一下,才知道是这么一回事。
对于parseInt("01")到parseInt( ......