Heim  >  Artikel  >  Web-Frontend  >  来自qq的javascript面试题_javascript技巧

来自qq的javascript面试题_javascript技巧

WBOY
WBOYOriginal
2016-05-16 18:22:251405Durchsuche
复制代码 代码如下:

var info="腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站。";
info +="拍拍网于2005年9月12日上线发布,";
info +="2006年3月13日宣布正式运营,";
info +="是目前国内第二大电子商务平台。";
info=info.split(",");
for(var i=0; i{
alert(info[i]);
}

这题初看纯属折腾,因为后面要根据逗号分隔再alert每项,何不构造一个数组对象来存放文本内容,而要用个临时变量info才存放
如var info=["腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站。","拍拍网于2005年9月12日上线发布,","2006年3月13日宣布正式运营,","是目前国内第二大电子商务平台。"] 。可是后来想如果是优化的话这个题目就出的没意义了。
仔细观察info这个变量,发现它每次都要自加字符串,如果字符串很大的又很多的话会非常影响性能的。

对于js中的string类型,属于基本类型,因此一般情况下他们是存放在栈上的。如果字符串很大,info会每次变成一个很长的字符串,会很慢

如果用引用类型数组来存放则好很多,如
复制代码 代码如下:

var temp=[];
temp.push("腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站。") ;
temp.push()....//temp只是一个指向堆上数组的指针
....

最后一招temp.join("")搞定。对处理大字符串连接问题都可以采取这种思路。
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn