標籤:
1、 使用===取代==
==和!=操作符會在需要的情況下自動轉換資料類型。但===和!==不會,它們會同時比較值和資料類型,這也使得它們要比==和!=快。
1 if("1"=="1"){ //速度慢 2 3 } 4 if ("1" === "1") { //速度快 5 6 } 7 if ("1" != "1") {//速度慢 8 9 }10 if ("1" !== "1") {//速度快11 12 }
2、underfined、null、0、false、NaN、Null 字元串 的邏輯結果均為 false
3、從數組中隨機擷取成員
var array=[12,55,‘a‘,5,8,9,4,94,‘fv‘];var randomItem=array[Math.floor(Math.random() * array.length)];
4、擷取指定範圍內的隨機數
var x=Math.floor(Math.random() * (max -min +1))+min;
5、函數在建立之後直接自動執行,通常稱之為自調用匿名函數(Self-Invoked Anonymous Function)或直接調用函數運算式(Immediately Invoked Function Expression )。格式如下:
(function (){ //自動執行代碼 })(); (function (a,b){ //自動執行代碼 })(4,9);
6、數組之間追加
1 var arrary1=[45,958,68,98,669,85,34];2 var arrary2=[7,54,8,54,57,9,77];3 Array.prototype.push.apply(arrary1,arrary2); //arrary1 的值為:[45,958,68,98,669,85,34,7,54,8,54,57,9,77]
7、擷取數組中的最大值和最小值
var numbers=[46,4,68,89,87,84,49,16,89,9]; var maxNumber=Math.max.apply(Math,numbers); //最大值 var minNumber=Math.min.apply(Math,numbers); //最小值
8、清空數組
var array=[15,9,68,76];array.length=0;
9、不要直接從數組中delete或remove元素, 如果對數組元素直接使用delete,其實並沒有刪除,只是將元素置為了undefined。數組元素刪除應使用splice。 刪除對象的屬性時可以使用delete。
arrayObject.splice(index,howmany,item1,.....,itemX)
| 參數 |
描述 |
| index |
必需。整數,規定添加/刪除項目的位置,使用負數可從數組結尾處規定位置。 |
| howmany |
必需。要刪除的項目數量。如果設定為 0,則不會刪除項目。 |
| item1, ..., itemX |
可選。向數組添加的新項目。 |
說明
splice() 方法可刪除從 index 處開始的零個或多個元素,並且用參數列表中聲明的一個或多個值來替換那些被刪除的元素。
如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數組。
10、保留指定小數位元
var num=2.9932858; num=num.toFixed(4); //num=2.9932
11、 浮點計算的問題
0.1+0.2等於0.30000000000000004。JavaScript的數字都遵循IEEE 754標準構建,在內部都是64位浮點小數表示,具體可以參見JavaScript中的數字是如何編碼的。
可以通過使用toFixed()和toPrecision()來解決這個問題。
toFixed() 方法可把 Number 四捨五入為指定小數位元的數字。
NumberObject.toFixed(num)
| 參數 |
描述 |
| num |
必需。規定小數的位元,是 0 ~ 20 之間的值,包括 0 和 20,有些實現可以支援更大的數值範圍。如果省略了該參數,將用 0 代替。 |
傳回值
返回 NumberObject 的字串表示,不採用指數計數法,小數點後有固定的 num 位元字。如果必要,該數字會被舍入,也可以用 0 補足,以便它達到指定的長度。如果 num 大於 le+21,則該方法只調用 NumberObject.toString(),返回採用指數計數法表示的字串。
拋出
當 num 太小或太大時拋出異常 RangeError。0 ~ 20 之間的值不會引發該異常。有些實現支援更大範圍或更小範圍內的值。
當調用該方法的對象不是 Number 時拋出 TypeError 異常。
toPrecision() 方法可在對象的值超出指定位元時將其轉換為指數計數法。
NumberObject.toPrecision(num)
| 參數 |
描述 |
| num |
必需。規定必須被轉換為指數計數法的最小位元。該參數是 1 ~ 21 之間(且包括 1 和 21)的值。有效實現允許有選擇地支援更大或更小的 num。如果省略了該參數,則調用方法 toString(),而不是把數字轉換成十進位的值。 |
傳回值
返回 NumberObject 的字串表示,包含 num 個有效數字。如果 num 足夠大,能夠包括 NumberObject 整數部分的所有數字,那麼返回的字串將採用定點計數法。否則,採用指數計數法,即小數點前有一位元字,小數點後有 num-1 位元字。必要時,該數字會被舍入或用 0 補足。
拋出
當 num 太小或太大時拋出異常 RangeError。1 ~ 21 之間的值不會引發該異常。有些實現支援更大範圍或更小範圍內的值。
當調用該方法的對象不是 Number 時拋出 TypeError 異常。
12、傳給setInterval()和setTimeout()時使用函數而不是字串
1 //不要使用:2 setInterval("Fun_1()",200);3 setInterval("Fun_2()",200);4 //使用:5 setInterval(Fun_1,200);6 setInterval(Fun_2,200);
JavaScript開發的技巧