javascript
JavaScript开发的技巧
1、 使用===取代==
??? ==和!=操作符會在需要的情況下自動轉(zhuǎn)換數(shù)據(jù)類型。但===和!==不會,它們會同時比較值和數(shù)據(jù)類型,這也使得它們要比==和!=快。
2、underfined、null、0、false、NaN、空字符串 的邏輯結(jié)果均為 false
3、從數(shù)組中隨機(jī)獲取成員
var array=[12,55,'a',5,8,9,4,94,'fv']; var randomItem=array[Math.floor(Math.random() * array.length)];4、獲取指定范圍內(nèi)的隨機(jī)數(shù)
var x=Math.floor(Math.random() * (max -min +1))+min;5、函數(shù)在創(chuàng)建之后直接自動執(zhí)行,通常稱之為自調(diào)用匿名函數(shù)(Self-Invoked Anonymous Function)或直接調(diào)用函數(shù)表達(dá)式(Immediately Invoked Function Expression )。格式如下:
(function (){//自動執(zhí)行代碼 })();(function (a,b){//自動執(zhí)行代碼})(4,9);6、數(shù)組之間追加
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、獲取數(shù)組中的最大值和最小值
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、清空數(shù)組
var array=[15,9,68,76]; array.length=0;9、不要直接從數(shù)組中delete或remove元素,? 如果對數(shù)組元素直接使用delete,其實并沒有刪除,只是將元素置為了undefined。數(shù)組元素刪除應(yīng)使用splice。 刪除對象的屬性時可以使用delete。
arrayObject.splice(index,howmany,item1,.....,itemX)| index | 必需。整數(shù),規(guī)定添加/刪除項目的位置,使用負(fù)數(shù)可從數(shù)組結(jié)尾處規(guī)定位置。 |
| howmany | 必需。要刪除的項目數(shù)量。如果設(shè)置為 0,則不會刪除項目。 |
| item1, ..., itemX | 可選。向數(shù)組添加的新項目。 |
說明
splice() 方法可刪除從 index 處開始的零個或多個元素,并且用參數(shù)列表中聲明的一個或多個值來替換那些被刪除的元素。
如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數(shù)組。
10、保留指定小數(shù)位數(shù)
var num=2.9932858;num=num.toFixed(4); //num=2.993211、?浮點計算的問題
?0.1+0.2等于0.30000000000000004。JavaScript的數(shù)字都遵循IEEE 754標(biāo)準(zhǔn)構(gòu)建,在內(nèi)部都是64位浮點小數(shù)表示,具體可以參見JavaScript中的數(shù)字是如何編碼的。
可以通過使用toFixed()和toPrecision()來解決這個問題。
toFixed() 方法可把 Number 四舍五入為指定小數(shù)位數(shù)的數(shù)字。
NumberObject.toFixed(num)| num | 必需。規(guī)定小數(shù)的位數(shù),是 0 ~ 20 之間的值,包括 0 和 20,有些實現(xiàn)可以支持更大的數(shù)值范圍。如果省略了該參數(shù),將用 0 代替。 |
返回值
返回 NumberObject 的字符串表示,不采用指數(shù)計數(shù)法,小數(shù)點后有固定的 num 位數(shù)字。如果必要,該數(shù)字會被舍入,也可以用 0 補(bǔ)足,以便它達(dá)到指定的長度。如果 num 大于 le+21,則該方法只調(diào)用 NumberObject.toString(),返回采用指數(shù)計數(shù)法表示的字符串。
拋出
當(dāng) num 太小或太大時拋出異常 RangeError。0 ~ 20 之間的值不會引發(fā)該異常。有些實現(xiàn)支持更大范圍或更小范圍內(nèi)的值。
當(dāng)調(diào)用該方法的對象不是 Number 時拋出 TypeError 異常。
?
toPrecision() 方法可在對象的值超出指定位數(shù)時將其轉(zhuǎn)換為指數(shù)計數(shù)法。
NumberObject.toPrecision(num)| num | 必需。規(guī)定必須被轉(zhuǎn)換為指數(shù)計數(shù)法的最小位數(shù)。該參數(shù)是 1 ~ 21 之間(且包括 1 和 21)的值。有效實現(xiàn)允許有選擇地支持更大或更小的 num。如果省略了該參數(shù),則調(diào)用方法 toString(),而不是把數(shù)字轉(zhuǎn)換成十進(jìn)制的值。 |
返回值
返回 NumberObject 的字符串表示,包含 num 個有效數(shù)字。如果 num 足夠大,能夠包括 NumberObject 整數(shù)部分的所有數(shù)字,那么返回的字符串將采用定點計數(shù)法。否則,采用指數(shù)計數(shù)法,即小數(shù)點前有一位數(shù)字,小數(shù)點后有 num-1 位數(shù)字。必要時,該數(shù)字會被舍入或用 0 補(bǔ)足。
拋出
當(dāng) num 太小或太大時拋出異常 RangeError。1 ~ 21 之間的值不會引發(fā)該異常。有些實現(xiàn)支持更大范圍或更小范圍內(nèi)的值。
當(dāng)調(diào)用該方法的對象不是 Number 時拋出 TypeError 異常。
?
12、傳給setInterval()和setTimeout()時使用函數(shù)而不是字符串
1 //不要使用: 2 setInterval("Fun_1()",200); 3 setInterval("Fun_2()",200); 4 //使用: 5 setInterval(Fun_1,200); 6 setInterval(Fun_2,200);?
轉(zhuǎn)載于:https://www.cnblogs.com/linJie1930906722/p/5380550.html
總結(jié)
以上是生活随笔為你收集整理的JavaScript开发的技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mac怎么不能拷贝文件到U盘
- 下一篇: Spring Data Redis—Pu