国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript字符串String和Array操作的有趣方法

2024-05-06 14:20:28
字體:
來源:轉載
供稿:網友
字符串和數組在程序編寫過程中是十分常用的類型,因此程序語言都會將String和Array作為基本類型,并提供許多字符串和數組的方法來簡化對字符串的操作。JavaScript里面也提供了String類型和Array類型,并且有很多基本的String方法和Array方法來方便地對字符串進行合并、查找、替換、截取等處理。

JavaScript作為一個腳本語言,又提供了一種動態解析運行的機制,而這特性,又讓使得在String操作的時候出現一些結合使用Array的有趣方法。這些方法可能有些偏門有點奇怪,但有時在效率、可讀性、復用性上表現得卻更好。

重復字符串
常常我們想要把字符串多次打印出來(比如想要個分割線),我們就需要將一個字符串重復多次, 可惜JavaScript并沒有提供類似repeat這樣的方法。當然我們可以用循環來拼接出來,但是我們可以利用JavaScript中Array的join方法來實現repeat
代碼如下:
function repeat(str, n) {
var arr = new Array(n+1);
return arr.join(str);
}
//output:
//-------

利用n+1個Array元素產生的n個間隙,再以目標字符串來拼接,我們就能得到字符串重復的功能。
擴展String的prototype使方法應用于所有字符串
JavaScript的對象繼承和方法尋找是基于原型鏈(prototype chain),所有使用著的字符串都可以說是繼承于String的對象,我們可以為String對象的prototype添加方法或者屬性,這樣該方法就可以應用到所有我們使用的對象上了。比如上邊的repeat方法,就可以改成:
代碼如下:
String.prototype.repeat = function(n) {
var arr = new Array(n+1);
return arr.join(this);
};
document.write('-'.repeat(21));
//output:
//---------------------

然后,直接通過字符串調用repeat方法,就可以得到跟上邊一樣的結果。
這可以讓我們實現對字符串方法的擴充,簡潔對字符串的操作,但是這會“污染”了JavaScript的String,當代碼被轉到其他文件但是那個文件下并沒有得到這段擴充,就可能會造成找不到該方法;另外,調用prototype擴展方法比直接調用方法要稍微“慢”一些,因為JavaScript會先去在字符串對象自身的方法中嘗試尋找,再找到String的prototype的方法;再者也許在將來我們擴充的方法(比如repeat)變成了標準方法了,再使用這代碼就會覆蓋了標準方法,得到不一致的結果。

但是忽略這些考慮,擴充JavaScript標準類型的prototype還是會給編程帶來許多的遍歷。

用Array作StringBuilder
在很多高級語言中,加號(+)在字符串的操作中被賦予了更多的意義:作為字符串拼接的操作符。不過在Java和C#中,我們也知道如何頻繁進行字符串拼接的操作,使用加號(+)就會產生效率問題,因此在這種情況下就會推薦使用StringBuilder。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 宁明县| 崇仁县| 平度市| 宿州市| 磐安县| 海南省| 遂昌县| 美姑县| 大竹县| 文昌市| 千阳县| 闻喜县| 建始县| 三穗县| 梅州市| 石首市| 永川市| 山丹县| 钟山县| 平南县| 简阳市| 通州市| 哈密市| 蒲江县| 呼图壁县| 罗山县| 岗巴县| 奉节县| 筠连县| 房产| 沁源县| 无为县| 喀喇沁旗| 玉屏| 措美县| 淮阳县| 巧家县| 探索| 徐水县| 双城市| 泉州市|