學(xué)JavaScript七大注意事項(xiàng)【必看】
知識(shí)說明:
初學(xué)JavaScript,注意以下七大細(xì)節(jié),在實(shí)現(xiàn)同樣功能的情況下,讓我們的代碼更易懂、效率更高。
一、簡(jiǎn)化代碼
例如:創(chuàng)建對(duì)象
之前是這樣的:
Var car = new object();
Car.color = “red”;
Car.wheels = 4;
Car.age = 8;
而現(xiàn)在可以寫成這樣子:
Var car = {color:'red', wheels:4, age:8}
例如:創(chuàng)建數(shù)組
之前是這樣的:
Var studentArray = new Array(‘zhangsan', 'lisi', ‘zhaowu', ‘wuliu');
而現(xiàn)在可以寫成這樣子:
Var studentArray = {‘zhangsan', ‘ lisi', ‘zhaowu', ‘wuliu'};
例如:使用三元運(yùn)算符簡(jiǎn)化代碼
之前的寫法是:
Var result; if(x > 100) { Result = 1; }else{ Result = -1; }
而現(xiàn)在可以寫成:
Var result = x >100 ? 1 : -1;
二、使用JSON作為數(shù)據(jù)格式
使用Json格式來存儲(chǔ)數(shù)據(jù):
var band = { "name":"The Red Hot Chili Peppers", "members":[ { "name":"Anthony Kiedis", "role":"lead vocals" }, { "name":"Michael 'Flea' Balzary", "role":"bass guitar, trumpet, backing vocals" }, { "name":"Chad Smith", "role":"drums,percussion" }, { "name":"John Frusciante", "role":"Lead Guitar" } ], "year":"2009" }
也可以使用JS來存儲(chǔ)數(shù)據(jù),代碼如下:
<div id = “dataDiv”></div> <script> Function saveData(data) { Var out =“<ul>”; For(var i=0; i<data.length; i++) { Out += “<li><a href =”'+data[i].url+'”>+ data[i].d+</a></li>”; } Out += ‘</ul>'; Document.getElementById(‘dataDiv').innerHTML = out; } </script>
甚至可以將上面JS生成的存儲(chǔ)數(shù)據(jù)的作為API的返回值
<script src="http://feeds.delicious.com/v2/json/codepo8/javascript?count=15&callback=delicious">
</script>
三、盡量使用JavaScript原生函數(shù)
例如:獲取一組數(shù)據(jù)中的最大值
var maxData = Math.max(0,20,50,10);
alert(maxData); //返回的最大值為50
例如:使用JS給一個(gè)元素添加class樣式,代碼片段如下:
Function addClass(elm, newclass) { Var classes = elm.className.split(‘ ‘ ); Classes.push(newclass); Elm.className = classes.join(‘ '); }
四、事件委托
例如:
<h2>Great Web resources</h2> <ul id="resources"> <li><a >Opera Web Standards Curriculum</a></li> <li><a >Sitepoint</a></li> <li><a >A List Apart</a></li> <li><a >YUI Blog</a></li> <li><a >Blame it on the voices</a></li> <li><a >Oddly specific</a></li> </ul>
最佳腳本書寫方式:
(function(){ var resources = document.getElementById('resources'); resources.addEventListener('click',handler,false); function handler(e){ var x = e.target; // get the link tha if(x.nodeName.toLowerCase() === 'a'){ alert('Event delegation:' + x); e.preventDefault(); } }; })();
五、匿名函數(shù)
var myApplication = function(){ var name = 'Chris'; var age = '34'; var status = 'single'; function createMember(){ // [...] } function getMemberDetails(){ // [...] } return{ create:createMember, get:getMemberDetails } }(); //myApplication.get() and myApplication.create() now work.
六、代碼可配置
你寫的代碼如果想讓別人更容易進(jìn)行使用或者修改,則需要可配置,解決方案是在你寫的腳本中增加一個(gè)配置對(duì)象。要點(diǎn)如下:
1、在你的腳本中新增一個(gè)叫configuration的對(duì)象。
2、在配置對(duì)象中存放所有其它人可能想要去改變的東西,例如CSS的ID、class名稱、語言等等。
3、返回這個(gè)對(duì)象,作為公共屬性以便其它人可以進(jìn)行重寫。
七、代碼兼容性
兼容性是初學(xué)者容易忽略的部分,通常學(xué)習(xí)Javascript的時(shí)候都是在某個(gè)固定的瀏覽器中進(jìn)行測(cè)試,而這個(gè)瀏覽器很有可能就是IE,這是非常致命的,因?yàn)槟壳皫状笾髁鳛g覽器中偏偏I(xiàn)E對(duì)標(biāo)準(zhǔn)的支持是最差的。最終用戶看到的結(jié)果也許就是,你寫的代碼在某個(gè)瀏覽器無法正確運(yùn)行。你應(yīng)該把你的代碼在主流的瀏覽器中都測(cè)試一下,這也許很費(fèi)時(shí)間,但是應(yīng)該這樣做。
以上這篇學(xué)JavaScript七大注意事項(xiàng)【必看】就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
簡(jiǎn)介JavaScript中的push()方法的使用
這篇文章主要介紹了簡(jiǎn)介JavaScript中的push()方法的使用,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06js中escape對(duì)應(yīng)的C#解碼函數(shù) UrlDecode
js中escape對(duì)應(yīng)的C#解碼函數(shù) System.Web.HttpUtility.UrlDecode(s),使用過程中有以下幾點(diǎn)需要注意2012-12-12JavaScript For Beginners(轉(zhuǎn)載)
JavaScript For Beginners(轉(zhuǎn)載)...2007-01-01Javascript學(xué)習(xí)筆記之?dāng)?shù)組的遍歷和 length 屬性
我們一般用循環(huán)來遍歷數(shù)組,而循環(huán)一直是 JavaScript 性能問題的常見來源,有時(shí)循環(huán)用得不好會(huì)嚴(yán)重降低代碼的運(yùn)行速度。數(shù)組的屬性可以分為三種:length屬性,索引屬性,其他屬性.和普通對(duì)象相比,數(shù)組對(duì)象特殊的地方就是它的length屬性和索引屬性。2014-11-11在Javascript中 聲明時(shí)用"var"與不用"var"的區(qū)別
Javascript聲明變量的時(shí)候,雖然用var關(guān)鍵字聲明和不用關(guān)鍵字聲明,很多時(shí)候運(yùn)行并沒有問題,但是這兩種方式還是有區(qū)別的2013-04-04