设为首页 加入收藏

TOP

如何解答这道 JavaScript 面试题?
2014-11-23 22:03:13 来源: 作者: 【 】 浏览:6
Tags:如何 解答 JavaScript 试题

请把以下用于连接字符串的java script代码修改为更高效的方式

var htmlString = ‘ < div class=”container” > ’ + ‘ < ul id=”news-list” > ’;
for (var i = 0; i < NEWS.length; i++) {
htmlString += ‘ < li > < a href=”’ +NEWS[i].LINK + ‘” > +NEWS[i].TITLE + ‘ < /a > < /li > ’;
}
htmlString += ‘ < /ul > < /div > ’;


考点有两个:


===============
主要看一下第一个:
在js里字符串一旦赋值后不能修改。

基于这个背景看一下字符串连接操作:
var str ;str = ‘this is a string’;str = str + ‘,another string.’;对于这个连接操作JS的处理机制是:新建一个临时字符串,将新字符串赋值为 str + ‘,another string.’ ,然后返回这个新字符串并同时销毁原始字符串。所以字符串的连接效率较低。
提高效率的办法是用数组的join函数
var tempArr = [] ,src,res;src = ‘this is a string’;tempArr.push(src);tempArr.push(‘,another string.’);res = tempArr.join(”);


不过在《Java高级程序设计》里也提到:
这个过程是在后台发生的,而这也是在某些旧版本的浏览器(例如版本低于1.0的FireFox、IE6等)中拼接字符串是速度很慢的原因。但这些浏览器后来的版本已经解决了这个问题。所以效率提高也只是在IE6 等低版本的浏览器中有效。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇不同部落间的通婚 下一篇一家外资企业关于测试方面的题目

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: