中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

詳解JavaScript的另類寫法
來源:易賢網 閱讀:980 次 日期:2016-07-08 13:54:34
溫馨提示:易賢網小編為您整理了“詳解JavaScript的另類寫法”,方便廣大網友查閱!

這篇文章主要介紹了詳解JavaScript的另類寫法的相關資料,需要的朋友可以參考下

JavaScript 是屬于網絡的腳本語言!

JavaScript 被數百萬計的網頁用來改進設計、驗證表單、檢測瀏覽器、創建cookies,以及更多的應用。

JavaScript 是因特網上最流行的腳本語言。

JavaScript 很容易使用!你一定會喜歡它的!

JavaScript一種解釋型的腳本語言,語法靈活,讓不同的人對同一個功能有很多種不同的寫法。怎樣組織JavaScript代碼才能讓別人一眼看出你不簡單呢?是否很期待別人在看完你的代碼之后感嘆一句“原來還可以這樣寫”呢?

匿名函數的N種寫法

Js的匿名函數是未申明函數名的自執行函數,格式如下:

(function(){})();

實際在項目上我們經常是在前面加上“;”:

;function(){}();

因為Js的語法是可以省略分號的,但是這種機制也會導致意外的錯誤。為了避免代碼上線后合并壓縮成一個文件造成語法錯誤,所以加上“;”可以避免未知錯誤。

但有時我們看見別人的庫或是插件里面會這樣寫匿名函數:

+function(){}();

“+”在這里是運算符,運算符具有極高的優先級,所以右邊的函數聲明加上括號的部分(實際上就是函數執行的寫法)就直接執行了。其實不止前面可以是“+”號,“-”、“!”、“~”、“++”等運算符均可。這里只是做擴展介紹,具體用哪種寫法看團隊統一規范。

拋棄Math.ceil()和Math.floor取整

也許在別的代碼中看到過這兩種符號~~和|0,直接看運行結果:

>> var a1 = 1.23

>> ~~a1

1

>> var a2 = 2.345

>> a2|0

2

>> var a3 = -3.45

>> ~~a3

-3

>> var a4 = -4.5

>> a4|0

-4

注明下,這種寫法不是原創,只是引用過來分析和說明下這種另類的寫法。簡單解釋,~是按位取反的運算符,可以將浮點數通過舍去小數點后面的所有位來轉換為整數。正整數可轉換為無符號的十六進制值。然后再取反一次(~~)負負得正,就得到原來的整數。就是這么任性不愛調方法,你說算不算也是一種優化呢。

注意:如果需要做嚴格的四舍五入運算就要慎用此方法,那就還是得用Math函數。

if和else也不是唯一

用if-else的條件判斷是很清晰的邏輯,在處理數據量不大情況下看起就不是很簡潔:

if (a===1) { //此處強烈建議用嚴格等于符號“===”,不會進行類型轉換

a=2

} else if (a===3) {

a=4

} else {

a=5

}

看看用||和&&給代碼瘦身后:

((a===1)&&(true,a=2))||((a===3)&&(true,a=4))||(a=5)

一行就搞定,瘦身成功。||和&&,很簡單的原理就不用說啦,里面用到逗號運算符還不容易理解,可以繼續換成三元運算符:

(a===1 )? a=2:( (a===3) ? (a=4) : (a=5) )

這種寫法看起來結構是夠簡化,但是別人看你的代碼會有點吃力。

用toString替代煩人的字符串拼接DOM結構

如果要動態生成一個dom結構一般我們是這樣實現的 :

var template = "<div>"

+ "<h2>{title}</h2>"

+ "<div class='content' yAttr=''>{content}</div>"

+ "</div>"

如果再添加各種屬性和參數進去,大、小引號混亂很容易報錯。然而ES6提供了Template String幫我們解決了這個問題,你可以這樣寫:

var template = <div> 

<h2>{title}</h2> 

<div class='content' yAttr=''>{content}</div> 

</div>

可問題是ES6現在還未正式來啊…不怕,function.toString來解決我們青黃不接時的尷尬:

var rComment = /\/\*([\s\S]*?)\*\//;

// multiply string 

function ms(fn){ 

return fn.toString().match(rComment)[1]

}; 

ms(function(){/* 

<div> 

<h2>{title}</h2> 

<div class='content' yAttr=''>{content}</div> 

</div> */

})

這里的輸出和前面的字符串輸出一樣一樣滴,前端程序猿們只需要關注自己的dom結構就好了。

添加AMD模塊支持,提示代碼B格

給你寫的代碼聲明一下AMD(異步模塊定義,Asynchronous Module Definition)模塊規范,這樣別人就可以直接通過AMD的規范來加載你的模塊了,如果別人沒有通過規范來加載你的模塊,你也可以優雅地返回一個常規的全局對象。來看看jQueryUI的寫法:

(function( factory ) { 

if ( typeof define === "function" && define.amd ) { 

// AMD模式。且依賴"jQuery"這個插件 

define( [ "jquery" ], factory ); } 

else { 

// 瀏覽器全局模式 

factory( jQuery ); 

}(function( $ ) { 

// 這里放模塊代碼 

return $.widget; 

}));

改成AMD模塊的結構,讓你的代碼更適于瀏覽器端加載腳本依賴,按照這種格式來寫代碼,保證別人一看代碼就知道你是個專業的開發者。

繼承最優法

JavaScript的靈活性,大大小小的繼承方式有十余種之多。每種寫法優缺點各異,各家方法不一一列舉,舉個常用的繼承方法為例,原型繼承:

function Parent() {}

function Child() {}

Child.prototype = Parent.prototype

Child.prototype.constructor = Child ;

這種這種方法實際上是將Child.prototype和Parent.prototype中保存的指針指向了同一個對象,所以子對象原型中擴展一些屬性以便之后繼續繼承的話,父對象的原型也會被改寫。所以為了解決這個問題,嘗試借用一個臨時構造器的寫法:

function Empty(){}

Empty.prototype = Parent.prototype;

Child.prototype = new Empty();

Child.prototype.constructor = Child;

這樣父對象的自身屬性和原型方法得到保護。“最優”有點夸大,但是是相比較而言的。相信每個人都有自己的寫法,還有借用call和apply實現屬性繼承的優缺點,篇幅有限不一一介紹。

總結

上述所有的JavaScript的另類寫法,一些是為了程序易懂或者效率提高的語法糖,這樣的做法是比較可取的,比如前面所說的省略if-else的做法。一些是為了提升我們代碼的兼容性和性能,比如AMD和繼承的方式。……本人菜鳥一枚,上述內容肯定還有不全和沒解釋透徹的地方以后再補充。

以上內容是針對JavaScript的另類寫法的相關介紹,希望對大家有所幫助!

更多信息請查看網絡編程
易賢網手機網站地址:詳解JavaScript的另類寫法
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網

中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
亚洲一区二区三区精品在线| 久久综合狠狠综合久久激情| 一区二区三区在线免费观看| 色综合久久99| 尤物视频一区二区| 欧美精品久久天天躁| 久久99精品一区二区三区| 久久久久久99久久久精品网站| 国产乱子伦一区二区三区国色天香 | 国内外成人在线| 国产色爱av资源综合区| aaa亚洲精品| 午夜视频久久久久久| 精品国产乱码久久久久久牛牛| 国产成人精品综合在线观看 | av影院午夜一区| 欧美视频在线一区二区三区| 国产日韩av一区| 成人性生交大合| 亚洲在线视频网站| 26uuu亚洲综合色| 99精品视频一区二区三区| 性做久久久久久免费观看欧美| 精品国产髙清在线看国产毛片 | 亚洲一区二区三区四区不卡| 欧美成人性战久久| 色天天综合色天天久久| 精品无人区卡一卡二卡三乱码免费卡| 欧美激情综合在线| 欧美一二区视频| 色诱视频网站一区| 激情五月播播久久久精品| 亚洲精品视频免费看| 精品国产伦一区二区三区观看方式 | 色哟哟一区二区三区| 国产在线一区二区| 亚洲成人自拍一区| 国产精品久久看| 精品国产一区二区精华| 欧美日韩在线一区二区| 国产成人精品亚洲日本在线桃色| 午夜视频一区二区| 亚洲免费伊人电影| 国产性天天综合网| 在线播放中文一区| 色狠狠色狠狠综合| 成人免费观看av| 国产精品一区在线观看乱码| 午夜精品123| 中文字幕色av一区二区三区| 亚洲精品一线二线三线| 日韩一区二区在线观看视频 | 日韩欧美一级二级三级久久久| 99国产精品久久久久| 久久99国产精品久久99果冻传媒| 亚洲一区影音先锋| 一区二区三区在线不卡| 亚洲同性gay激情无套| 中文字幕第一区| 国产女人水真多18毛片18精品视频| 日韩欧美综合一区| 日韩三级中文字幕| 欧美一区二区黄色| 欧美精品久久一区| 91精品国产美女浴室洗澡无遮挡| 欧美视频在线一区二区三区 | 欧美精品久久久久久久久老牛影院| 99久久婷婷国产| 成人h动漫精品| 成人免费毛片aaaaa**| 东方aⅴ免费观看久久av| 国产成人一级电影| 国产精品亚洲一区二区三区妖精 | 成人自拍视频在线观看| 国产99一区视频免费| 高清视频一区二区| 成人黄色片在线观看| 成人成人成人在线视频| 91欧美一区二区| 在线观看免费成人| 在线电影国产精品| 精品久久人人做人人爽| 国产亚洲欧美一区在线观看| 国产无一区二区| 国产精品久久久久天堂| 亚洲精品中文在线| 亚洲超碰精品一区二区| 亚洲成在线观看| 丝袜a∨在线一区二区三区不卡| 午夜免费欧美电影| 九色综合狠狠综合久久| 国产成人啪午夜精品网站男同| 本田岬高潮一区二区三区| 成人黄色电影在线| 在线看一区二区| 91麻豆精品国产91久久久久| 欧美成人艳星乳罩| 国产精品美女久久久久久久久| 亚洲视频图片小说| 丝袜国产日韩另类美女| 国产精品自在在线| 色狠狠一区二区| 日韩一级免费观看| 国产精品毛片久久久久久| 亚洲一区av在线| 另类中文字幕网| 99国产精品久久久久| 91精品黄色片免费大全| 国产欧美精品一区二区色综合朱莉| 成人欧美一区二区三区小说| 午夜久久电影网| 大陆成人av片| 在线播放欧美女士性生活| 国产亚洲精品福利| 亚洲国产日韩精品| 国产成人aaa| 欧美一三区三区四区免费在线看 | 久久综合九色欧美综合狠狠| 中文字幕日韩av资源站| 裸体歌舞表演一区二区| 色综合久久99| 久久久国产一区二区三区四区小说 | 欧美成人精品3d动漫h| 日韩欧美中文字幕公布| 国产精品免费丝袜| 日韩激情在线观看| 99r国产精品| 久久久久久免费| 日韩福利电影在线| 一本一道久久a久久精品综合蜜臀| 日韩精品一区二区在线| 亚洲美女一区二区三区| 国产传媒久久文化传媒| 欧美日韩视频在线第一区| 国产三区在线成人av| 日本美女视频一区二区| 色综合久久久久综合| 日本一区二区三区视频视频| 免费观看在线综合色| 欧洲一区二区三区在线| 中文字幕在线观看不卡| 国产一区不卡在线| 日韩欧美色综合| 午夜精品久久久久久久99樱桃| 99久久精品免费看国产| 国产女同性恋一区二区| 国产一区二区免费视频| 91精品国产综合久久精品性色| 亚洲激情一二三区| 99在线热播精品免费| 久久免费电影网| 狠狠色丁香久久婷婷综合_中| 欧美日本一区二区| 亚洲一级二级三级| 在线观看免费成人| 亚洲精品一二三四区| 色综合天天在线| 亚洲欧洲国产专区| va亚洲va日韩不卡在线观看| 国产清纯白嫩初高生在线观看91| 精品制服美女丁香| 欧美刺激午夜性久久久久久久| 美女网站在线免费欧美精品| 欧美一区二区三区色| 日韩成人午夜电影| 在线综合+亚洲+欧美中文字幕| 三级影片在线观看欧美日韩一区二区| 色狠狠一区二区| 亚洲成人综合网站| 91精品免费在线| 久久精品国产在热久久| 337p日本欧洲亚洲大胆精品| 久久福利视频一区二区| 久久久精品人体av艺术| 成人丝袜18视频在线观看| 综合激情成人伊人| 欧洲精品在线观看| 午夜欧美在线一二页| 日韩欧美国产三级| 国产永久精品大片wwwapp| 国产欧美一区二区三区沐欲| 岛国精品在线播放| 一区二区三区蜜桃| 91麻豆精品国产| 国产美女娇喘av呻吟久久| 国产精品丝袜久久久久久app| 91在线视频免费观看| 一区二区免费看| 欧美一区中文字幕| 国产盗摄一区二区三区| 伊人开心综合网| 日韩午夜电影av| 成人激情校园春色| 亚洲成av人片在www色猫咪| 日韩美女天天操| 成人毛片在线观看| 午夜精品在线看| 欧美激情艳妇裸体舞| 欧美日韩一区二区三区四区| 九九国产精品视频|