一、 使用===取代==
==和!=操做符會在須要的狀況下自動轉換數據類型。但===和!==不會,它們會同時比較值和數據類型,這也使得它們要比==和!=快。數組
if("1"=="1"){ //速度慢 } if ("1" === "1") { //速度快 }
二、underfined、null、0、false、NaN、空字符串 的邏輯結果均爲 falseapp
三、從數組中隨機獲取成員dom
var array=[12,55,'a',5,8,9,4,94,'fv']; var randomItem=array[Math.floor(Math.random() * array.length)];
四、獲取指定範圍內的隨機數函數
var x=Math.floor(Math.random() * (max -min +1))+min;
五、函數在建立以後直接自動執行,一般稱之爲自調用匿名函數(Self-Invoked Anonymous Function)或直接調用函數表達式(Immediately Invoked Function Expression )。格式以下:編碼
(function (){ //自動執行代碼 })(); (function (a,b){ //自動執行代碼 })(4,9);
六、數組之間追加spa
var arrary1=[45,958,68,98,669,85,34]; var arrary2=[7,54,8,54,57,9,77]; Array.prototype.push.apply(arrary1,arrary2); //arrary1 的值爲:[45,958,68,98,669,85,34,7,54,8,54,57,9,77]
七、獲取數組中的最大值和最小值prototype
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); //最小值
八、清空數組code
var array=[15,9,68,76]; array.length=0;
九、不要直接從數組中delete或remove元素, 若是對數組元素直接使用delete,其實並無刪除,只是將元素置爲了undefined。數組元素刪除應使用splice。 刪除對象的屬性時能夠使用delete。對象
arrayObject.splice(index,howmany,item1,.....,itemX)blog
參數 描述
index 必需。整數,規定添加/刪除項目的位置,使用負數可從數組結尾處規定位置。
howmany 必需。要刪除的項目數量。若是設置爲 0,則不會刪除項目。
item1, ..., itemX 可選。向數組添加的新項目。
說明
splice() 方法可刪除從 index 處開始的零個或多個元素,而且用參數列表中聲明的一個或多個值來替換那些被刪除的元素。
若是從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數組。
十、保留指定小數位數
var num=2.9932858; num=num.toFixed(4); //num=2.9932
十一、 浮點計算的問題
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 異常,這個不多用,通常沒人知道 。
十二、傳給setInterval()和setTimeout()時使用函數而不是字符串
//不要使用: setInterval("Fun_1()",200); setInterval("Fun_2()",200); //使用: setInterval(Fun_1,200); setInterval(Fun_2,200);