javascript - string 与 String

    技术2022-05-20  40

    var s="hello world";

     

    var S=new String("hello world");

     

    由于substring是String对象的方法,所以在使用s.substring()的时候系统会先把s包装为一个瞬间的String对象,按照这个理解在对字符串进行频繁的调用方法或属性的操作的时候,用new String的方式定义字符串效率会高些,但是在测试的时候发现无论在ie,WebKit, firefox都是恰恰相反,特别在firefox错了近三倍左右。测试代码如下:

     

     

    var str=new String("hello world");

    var now1=new Date().getTime();

    for(var i=0;i<10000000;i++){

    var k=str.length;

    }

    var now2=new Date().getTime();

    alert(now2-now1)

     

     

    var str1="hello world";

    var now3=new Date().getTime();

    for(var i=0;i<10000000;i++){

    var j=str1.length;

    }

    var now4=new Date().getTime();

    alert(now4-now3)

     

     

    另外,字符串的加法操作是直接量之间的操作,所以如果对String对象进行加法操作会有一个瞬时的基本字符串被创建,这样理论上直接量的加法效率高于String对象,但测试结果显示String对象的加法效率要好于string直接量相加。

     

    不晓得是我本人理解有问题,还是什么其他原因导致了这个结果!


    最新回复(0)