為JavaScript開發人員準備的 21 個小技巧(一)
為JavaScript開發人員準備的21個小技巧
----ViralPatel 2013-5-21
如果你平時總是需要寫很多的JavaScript程式碼,你會發現下邊列舉的程式碼段對你而言會非常有用,把它們儲存下來吧,將來你會用到的。
接下來就是為你準備的21個非常有用的程式碼段。
免責宣告:不是所有的程式碼段都是我寫的,它們中的某一些來自因特網。
1. 將JavaScript陣列轉化成 CSV(逗號分隔符值)
這是第一個小技巧,你有一個字串(或者數字)的JavaScript陣列,你想將它轉化成CSV,程式碼如下:
...........
上面程式碼可以看出,陣列的valueOf()方法,可以直接將一個陣列轉化成CSV串。
現在,如果你不想使用逗號而是使用豎線(|)作為分隔符,你可以呼叫陣列的 join() 方法來實現,看下面的程式碼:
// tip 1 :
function convert() {
var fruits = ['apple', 'peaches', 'oranges', 'mangoes'];
var str = fruits.valueOf();
alert(str);
}
function convert2() {
var fruits = ['apple', 'peaches', 'oranges', 'mangoes'];
var str = fruits.join("|");
alert(str);
}
convert();
convert2();
join() 方法將一個陣列轉化成豎線分隔的字串。
2. 將CSV轉化為JavaScript陣列
如果你想講CSV轉化為 JavaScript陣列,你該如何做呢?JavaScript陣列有一個方法來做這個事情。 split()方法可以將一個串通過任何指定的分隔符(比如逗號)切分成一個陣列。
下面我們將演示這個方法:
// tip 2:
function convert() {
var str = "apple, peaches, oranges, mangoes";
var fruitsArray = str.split(",");
alert('Array: '+fruitsArray);
}
convert();
3. 通過索引刪除陣列中的元素
你有一個JavaScript 陣列,現在你想通過指定索引的方式刪除其中某個元素。我們可以使用 splice() 方法來實現這個要求。這個方法可以往陣列中新增元素,也可以從陣列中刪除元素。我們先來看看刪除的操作:
// tip 3: function removeByIndex(arr, index) { arr.splice(index, 1); } function testRemove() { var test = ['Apple', 'Ball', 'Cat', 'Dog']; var old = ['Apple', 'Ball', 'Cat', 'Dog']; removeByIndex(test, 2); alert("Array before removing elements: "+old +"\nArray after removing elements: "+test); } testRemove();
譯者注:splice(index, num) 這種用法,指明從index位置開始,刪除num個元素,這個方法會直接在呼叫陣列上操作,如果刪除了元素(num > 0)則返回更新後的陣列,如果沒有刪除元素(num ===0) ,則返回一個空陣列([]) ;splice(index, num, element1, element2 ...) 這種用法,則 num 後面所有的元素均是需要插入的新的元素,所操作的流程就是,從index開始刪除num個原始元素,然後再在這個位置插入 element1,element2......如果你只想插入新的元素,則只需 num === 0 即可!注意,如果插入的是陣列,則該方法會以巢狀陣列的方式插入,不會講陣列展開!
4. 通過值匹配的方式從陣列中刪除元素
你有一個陣列,現在你想基於值(不是上述的索引)來刪除某元素:
// tip 4:
function removeByValue(arr, val) {
for(var i=0; i<arr.length; i++) {
if(arr[i] == val) {
arr.splice(i, 1);
break;
}
}
}
var somearray = ["mon", "tue", "wed", "thur"]
var oldBeforeRemoveByValue = ["mon", "tue", "wed", "thur"];
removeByValue(somearray, "tue");
alert("Array before removing elements: " + oldBeforeRemoveByValue
+"\n Array after removing elements : " + somearray);
上面我們就是通過定義了一個函式 removeByValue 來達到我們的目的。在JavaScript中,我們可以通過prototypes在執行時為某些類新增一些方法(雖然這個並不被提倡), 下面我們就為 JavaScript的Array類新增 removeByValue() 方法,這樣任何陣列都可以直接呼叫這個方法了:
Array.prototype.removeByValue = function(val) {
for(var i=0; i<this.length; i++) {
if(this[i] == val) {
this.splice(i, 1);
break;
}
}
}
var somearray = ["mon", "tue", "wed", "thur"];
var oldBeforeRemoveByValue = ["mon", "tue", "wed", "thur"];
somearray.removeByValue("tue");
alert("Array before removing elements: " + oldBeforeRemoveByValue
+"\n Array after removing elements : " + somearray);
5. 從一個串來呼叫JavaScript函式
有時,你知道一個函式的名稱,在執行期你想呼叫這個函式。假設這裡有一個函式 foo(),你想在執行時呼叫,這裡我們會給一個例子,來告訴你如何通過一個函式的名字來呼叫這個函式:
// tip 5:
function fooForFun(vals){
alert(vals);
return 1;
}
var functionName = "fooForFun";// something you get from the input of user or other places......
var theSpecialFun = window[functionName];
theSpecialFun("test");
6. 生成 1 到 N 的隨機數
下面的程式碼將幫助你產生 1 到 N的隨機數,這個程式碼在你的 JS 遊戲中或許有一些用處:
// tip 6: /** 生成 1 到 val 的一個隨機數 **/ function generateMyRandom(val){ var myRandom = Math.floor(Math.random() * val + 1); return myRandom; } alert(generateMyRandom(100));
7. 捕獲瀏覽器的關閉事件
這是一個常用的功能,你想要捕獲瀏覽器的關閉事件這樣你可以提醒使用者檢視頁面上是否有未儲存的資料,下面的JavaScript程式碼可以幫助你做到這個:
// tip 7:
function fnUnloadHandler() {
// Add your code here
alert("Unload event.. Do something to invalidate users session..");
}
/*
<body onbeforeunload="fnUnloadHandler()">
</body>
*/
這是前7個的翻譯,後面的會陸續翻譯好的,順便吐個槽,csdn寫部落格時貼程式碼的功能難道變弱了嘛!!!!???依稀記得以前貼程式碼沒有這麼噁心........
相關文章
- [譯] 優秀 JavaScript 開發人員應掌握的 9 個技巧JavaScript
- JavaScript開發技巧必備【一】JavaScript
- 為什麼 Web 開發人員需要學習一個 JavaScript 框架?WebJavaScript框架
- JavaScript 開發人員需要知道的簡寫技巧JavaScript
- 每個開發人員都需要了解的一個SQL技巧SQL
- 為現代 JavaScript 開發做好準備JavaScript
- 為現代JavaScript開發做好準備JavaScript
- Android開發人員必備的10個開發工具Android
- 21個值得收藏的Javascript技巧JavaScript
- 前端開發人員也要會的切圖技巧(一)前端
- 2019年成為優秀的Java開發人員的10個技巧Java
- 推薦給JavaScript開發人員的10個工具JavaScript
- 獨立開發人員劃分工作和生活界限的小技巧
- 【小程式】微信小程式開發準備微信小程式
- 作為JavaScript開發人員,這些必備的VS Code外掛你都用過嗎?JavaScript
- 作為JavaScript開發人員,這些必備的VS Code外掛你都用過嗎JavaScript
- 優秀的Java開發人員必備的6個技能!Java
- 小程式開發前的準備工作
- Web 開發人員備忘單Web
- Web開發人員必備的18個iPhone應用程式WebiPhone
- 作為一技術人員,面試前都需要做哪些準備?面試
- JavaScript開發人員必知的10個關鍵習慣JavaScript
- 什麼是Web開發?如何成為一個Python Web開發人員?WebPython
- 獨立開發人員通向成功的29個小貼士
- 一個 15 年 SAP ABAP 開發人員分享的 SAPGUI 一些個性化設定和實用小技巧試讀版GUI
- Swift開發的幾個小技巧Swift
- 【metabase • 一】開發準備
- AI應用開發之路-準備:發起一個開源小專案 DashScope SDK for .NETAI
- 一個SAP開發人員的養蠶流水帳
- 一個SAP開發人員的雙截棍之路
- 13 個Typescript 實用型別:開發人員的備忘單TypeScript型別
- 如何做一個讓開發人員看得起的測試人員
- .NET 開發人員必備工具:NAntNaN
- Reflect API:每個 JavaScript 開發人員都需要的瑞士軍刀APIJavaScript
- 為 Web 開發者準備的 25 個超棒 PHP 開發庫WebPHP
- 神器:前端開發人員必備的5款開發工具前端
- 為開發者準備的15個最棒的JavaScript 動畫庫JavaScript動畫
- 前端開發人員也要會的切圖技巧(二)前端