欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
關(guān)于《高效Javascript》中”避免隱式對象的轉換“的疑問(wèn)

下面的代碼會(huì )產(chǎn)生內存泄露

var s=”lalala”;
alert(s.length)//可參考winter的《瀏覽器內在泄露》

高效Javascript》捕捉到的詳細說(shuō)明:

Literal,如字符串、數字和布爾值在 ECMAScript 中有兩種表示方法。 每個(gè)類(lèi)型都可以創(chuàng )建變量值或對象。如 var oString = 'some content';, 創(chuàng )建了字符串值,而 var oString = new String('some content');創(chuàng )建了字符串對象。

所有的屬性和方法都定義在 string 對象中,而不是 string 值中。每次使用 string 值的方法或屬性, ECMAScript 引擎都會(huì )隱式的用相同 string 值創(chuàng )建新的 string 對象 (好家伙在這里做手腳了)。此對象只用于此請求,以后每次視圖調用 string 值方法是都會(huì )重新創(chuàng )建。

看到這里似乎應該很相信后者的效率比前者要高了,但從時(shí)間上來(lái)講,并非所有的瀏覽器都與opera表現一致

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<html xmlns="<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>

<body>
<button onclick="fun1()">隱式轉換</button>
<button onclick="fun2()">顯示調用</button>
<script type="text/javascript">
var str = [];
for(var i=0;i<100*100*10;i++) {
   str.push(i);
}
str = str.join("");

function fun1() {
   var date1 = +new Date();
   //下面的代碼將要求腳本引擎創(chuàng )建200001個(gè)新 string 對象,每次使用 length 屬性時(shí)都會(huì )產(chǎn)生一個(gè),每一個(gè) charAt 方法也會(huì )產(chǎn)生一個(gè)
   var s = str;
   for( var i = 0; i < s.length; i++ ) {
    s.charAt(i);
   }

   var date2 = +new Date();
   alert("函數執行的時(shí)間為:"+(date2-date1) + "ms");
}

function fun2() {
   var date1 = +new Date();
   //下面的代碼和上面相同,但只創(chuàng )建了一個(gè)對象,因此其效率更高??:
   var s = new String(str);
   for( var i = 0; i < s.length; i++ ) {
    s.charAt(i);
   }

   var date2 = +new Date();
   alert("函數執行的時(shí)間為:"+(date2-date1) + "ms");
}


</script>
</body>
</html>
瀏覽器                   隱式轉換所用時(shí)間            顯示調用所用時(shí)間

IE7(xp sp3)            1329ms                          1922ms

chrome(4.1)            27ms                              81ms

FF(3.5.8)                13ms                              860ms

Safari(3.2.2)            287ms                             233ms

Opera(10.0)            422ms                              203ms

上面的結果只能作為參考,我還是傾向于使用后一種方式進(jìn)行開(kāi)發(fā),二者執行后的內存并無(wú)較大的差異

打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
JS內置對象(1)
Javascript 解析,格式化日期
編程語(yǔ)言基于javascript 顯式轉換與隱式轉換(詳解)_javascript技巧
jquery easyui datebox 的使用 .
JavaScript trim函數大賞
JS基礎-內置對象【字符串+Date+Math】
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久