JS中實現簡單Formatter函數範例程式碼,formatter範例程式碼

來源:互聯網
上載者:User

JS中實現簡單Formatter函數範例程式碼,formatter範例程式碼

JS原生並沒有提供方便使用的Formatter函數,用字元拼接的方式看起來混亂難讀,而且使用起來很不方便。個人感覺C#裡提供的文法比較好用,如:

String.Format(“Welcome to learn '{0}','{0}' is awesome,you will {1} it!","Javascript","love");

這種有順序的替換方式,比較清晰,而且在要替換同一內容時候可以省去傳遞重複參數的情況,下面是JS簡單實現版本(沒有嚴格測試):

(function(exports) {exports.format = function(){var args = Array.prototype.slice.call(arguments),sourceStr = args.shift();function execReplace(text,replacement,index){return text.replace(new RegExp("\\{"+index+"\\}",'g'),replacement);}return args.reduce(execReplace,sourceStr);}})(window.utils = window.utils || {});console.log(utils.format("Welcome to learn '{0}','{0}' is awesome,you will {1} it!","Javascript","love"));

關鍵的是這句:

args.reduce(execReplace,sourceStr);

這裡使用了Array的reduce函數,reduce和reduceRight是ES5新增加的函數,該函數的參數是reduce(callback,initialValue),callback接收4個參數分別是:

previousValue:

在遍曆第一次進入該回呼函數時,如果指定了initivalValue將直接使用initivalValue,如果沒有指定將使用數組的第一個元素
第二次及以後的遍曆該值是前一次遍曆返回的結果
最後一次遍曆返回的結果將作為reduce函數的傳回值
currentValue: 遍曆到的當前item
index: 當前item在數組中的下標

array: 原始array

在execReplace中每一次執行時使用前一次替換後的結果作為原始替換字串,使用當前item的index作為要被替換的內容,依次遍曆,最終完成替換內容。

註:reduceRight和reduce函數基本一樣,只是它的遍曆順序是由右向左


怎用JS實現檔案下載功可以,函數,代碼

其實很簡單, 在這個方法裡面, 只要使用頁面跳轉, 將url指向檔案地址, IE就會實現下載了
例如下載Upload 檔案夾下的XX.doc,注意路徑要對
function download()
{
location.href="../Upload/XX.doc";
}
 
js中怎讓添加的圖片變為一個可以點擊圖片就可以調用js中函數的事件,怎編寫代碼?

this.parentNode 可以擷取自己的容器,根據你的代碼結構找到整行的那個容器就可以,比如用表格的話 是 tr 表格 例如 <table id="list"><tr><td><a href="javascript:void(0);" onclick="delRow(this.parentNode.parentNode);"></td></tr></table>
<script>function delRow(obj) {
var tb = document.getElementById('list');
tb.rows.removeChild(obj);
}
</script>
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.