麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

JavaScript 七大技巧(二)

2024-05-06 16:26:16
字體:
供稿:網(wǎng)友
我寫JavaScript代碼已經(jīng)很久了,都記不起是什么年代開始的了。本文給大家分享javascript七大技巧(二),對javascript技巧相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
 

上篇文章給大家介紹了JavaScript 七大技巧(一),寫JavaScript代碼已經(jīng)很久了,都記不起是什么年代開始的了。對于JavaScript這種語言近幾年所取得的成就,我感到非常的興奮;我很幸運(yùn)也是這些成就的獲益者。我寫了不少的文章,章節(jié),還有一本專門討論它的書,然而,我現(xiàn)在依然能發(fā)現(xiàn)一些關(guān)于這種語言的新知識。下面的描述的就是過去讓我不由得發(fā)出“啊!”的感嘆的編程技巧,這些技巧你應(yīng)該現(xiàn)在就試試,而不是等著未來的某個(gè)時(shí)候偶然的發(fā)現(xiàn)它們。

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":""   }

你可以在JavaScript里直接使用JSON,可以把它封裝在函數(shù)里,甚至作為一個(gè)API的返回值形式。  我們把這稱作 JSON-P ,很多的API都使用這種形式。  你可以調(diào)用一個(gè)數(shù)據(jù)提供源,在script代碼里直接返回 JSON-P 數(shù)據(jù):  

01  
12  

這是調(diào)用 Delicious 網(wǎng)站提供的 Web service 功能,獲得JSON格式的最近的無序書簽列表。  

基本上,JSON是最輕便的描述復(fù)雜數(shù)據(jù)結(jié)構(gòu)的方法,而且它能在瀏覽器里運(yùn)行。  

你甚至可以在PHP里用 json_decode() 函數(shù)來運(yùn)行它。  

JavaScript的自帶函數(shù)(Math, Array 和 String)  

讓我感到驚奇的一個(gè)事情是,當(dāng)我研究了JavaScript里的math和String函數(shù)后,發(fā)現(xiàn)它們能極大的簡化我的編程勞動。  

使用它們,你可以省去復(fù)雜的循環(huán)處理和條件判斷。  

例如,當(dāng)我需要實(shí)現(xiàn)一個(gè)功能,找出數(shù)字?jǐn)?shù)組里最大的一個(gè)數(shù)時(shí),我過去是這樣寫出這個(gè)循環(huán)的,就像下面:

 var numbers =  [,,,,];   var max = ;   for(var i=;i   if(numbers[i]  > max){   max = numbers[i];   }   }   alert(max);

  我們不用循環(huán)也能實(shí)現(xiàn): 

 var numbers =  [,,,,];   numbers.sort(function(a,b){return b -  a});   alert(numbers[]);

  需要注意的是,你不能對一個(gè)數(shù)字字符數(shù)組進(jìn)行 sort() ,因?yàn)檫@種情況下它只會按照字母順序進(jìn)行排序。  
如果你想知道更多的用法,可以閱讀 這篇不錯(cuò)的關(guān)于 sort() 的文章。  

再有一個(gè)有意思的函數(shù)就是 Math.max()。  

這個(gè)函數(shù)返回參數(shù)里的數(shù)字里最大的一個(gè)數(shù)字:

Math.max(12,123,3,2,433,4); // returns 433 

因?yàn)檫@個(gè)函數(shù)能夠校驗(yàn)數(shù)字,并返回其中最大的一個(gè),所以你可以用它來測試瀏覽器對某個(gè)特性的支持情況:

 var scrollTop=  Math.max(   doc.documentElement.scrollTop,   doc.body.scrollTop   );

  這個(gè)是用來解決IE問題的。你可以獲得當(dāng)前頁面的 scrollTop 值,但是根據(jù)頁面上 DOCTYPE 的不同,上面這兩個(gè)屬性中只有一個(gè)會存放這個(gè)值,而另外一個(gè)屬性會是 undefined,所以你可以通過使用 Math.max() 得到這個(gè)數(shù)。  

閱讀這篇文章你會得到更多的關(guān)于使用數(shù)學(xué)函數(shù)來簡化JavaScript的知識。  

另外有一對非常有用的操作字符串的函數(shù)是 split() 和 join()。我想最有代表性的例子應(yīng)該是,寫一個(gè)功能,用來給頁面元素附加CSS樣式。  

是這樣的,當(dāng)你給頁面元素附加一個(gè)CSS class時(shí),要么它是這個(gè)元素的第一個(gè)CSS class,或者是它已經(jīng)有了一些class  , 需要在已有的class后加上一個(gè)空格,然后追加上這個(gè)class。而當(dāng)你要去掉這個(gè)class時(shí),你也需要去掉這個(gè)class前面的空格(這個(gè)在過去非常重要,因?yàn)橛行├系臑g覽器不認(rèn)識后面跟著空格的class)。 

 于是,原始的寫法會是這樣:

 function addclass(elm,newclass){   var c =  elm.className;   elm.className = (c === '') ? newclass : c+' '+newclass;   }  你可以使用 split() 和 join() 函數(shù)自動完成這個(gè)任務(wù): function addclass(elm,newclass){   var classes =  elm.className.split(' ');   classes.push(newclass);   elm.className = classes.join(' ');   }  

這會確保所有的class都被空格分隔,而且你要追加的class正好放在最后。

是個(gè)短視的行為。工具包可以幫你快速的開發(fā),但如果你不深入理解JavaScript,你也會做錯(cuò)事。

用 JSON 形式存儲數(shù)據(jù)

  在我發(fā)現(xiàn)JSON之前,我使用各種瘋狂的方法把數(shù)據(jù)存貯在JavaScript固有的數(shù)據(jù)類型里面,例如:數(shù)組,字符串,中間夾雜著容易進(jìn)行拆分的標(biāo)志符號以及其它的令人討厭的東西。

  Douglas Crockford 發(fā)明了JSON 之后,一切全變了。

  使用JSON,你可以使用JavaScript自有功能把數(shù)據(jù)存貯成復(fù)雜的格式,而且不需要再做其它的額外轉(zhuǎn)換,直接可以訪問使用。

  JSON 是 “JavaScript Object Notation” 的縮寫,它用到了上面提到的兩種簡寫方法。

以上內(nèi)容是小編給大家分享的javascript七大技巧,希望大家喜歡。



注:相關(guān)教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 91麻豆精品国产91久久久更新资源速度超快 | 日日狠狠久久偷偷四色综合免费 | 国产成人av免费 | 色成人在线 | 国产精品一区二区三区在线播放 | 日韩黄在线观看 | 免费一级特黄欧美大片勹久久网 | 日韩午夜一区二区三区 | 操网 | 国产精品自在线拍 | 日韩视频在线一区二区三区 | 在线观看av国产一区二区 | 日本在线观看视频网站 | 国产九九 | 日韩欧美视频一区二区三区 | 久久国产免费 | 欧美成人做爰高潮片免费视频 | 国产精品久久久久久模特 | 亚洲射吧| 青青国产在线视频 | 日本不卡二区 | 国产精品伦视频看免费三 | 久久福利剧场 | 精品国产一区二 | 日本xxxx色视频在线观看免费, | 欧美色视频免费 | 日韩色视频在线观看 | 国产一区二区三区在线视频 | 黄色av.com | 国产精品久久久久久一区二区三区 | chinesexxx少妇露脸 | 高清做爰免费无遮网站挡 | 久久精品av| 中文字幕亚洲视频 | 欧美成人激情 | 亚欧美一区二区 | av免费不卡国产观看 | 久久久久久久久久一本门道91 | 成人网在线观看 | 蜜桃视频在线播放 | 久久精品在线免费观看 |