中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

走出JavaScript初學(xué)困境―js初學(xué)

從開始接觸JS這東西有一年時(shí)間了,心頭總是有一些說不出來的苦悶。在論壇里也常常有人這么說。那么苦在何處呢?總是感覺學(xué)的不深入,一些簡單的東西可以做但也是不能得心應(yīng)手。能不能把這種苦再說的具體點(diǎn)兒呢?都說了是“說不出來的苦悶”怎么具體呀?

何為難言之隱?說不出來,不能具體,不能把問題落到實(shí)處就不能得到解決的辦法。這就是難言之隱!我認(rèn)為這也就是初學(xué)者的“困境”。之所以要用“我認(rèn)為”正好迎合了本文標(biāo)題中的“心得”二字。如果能對大家有幫助我非常高興。

下面言歸正傳,我經(jīng)過回想和思考總結(jié)出下面幾條初學(xué)者的“難言之隱”大家看看有沒有說到我們的心坎兒上,呵呵。

一、用系統(tǒng)的知識將問題具體化

我們在學(xué)習(xí)時(shí)經(jīng)常會發(fā)現(xiàn)可以用不同的方法來實(shí)現(xiàn)同一個(gè)問題。例如,要為元素綁定一個(gè)點(diǎn)擊事件可以在HTML元素上用<a href="#" onClick="f1()"></a>,我們起初會認(rèn)為這就是綁定事件的方法。

當(dāng)我們第二次又看到可以將一個(gè)函數(shù)傳遞給一個(gè)事件來綁定:a.onclick=f1;這時(shí)我們又會想原來綁定事件不只有一種方法。

當(dāng)我們第三次又看到用addachEvent("onclick",f1)這種方法綁定事件的時(shí)候,你一定會想綁定事件的方法可能不只這三種。而且做一件事沒理由要三種相同的方法,他們之間一定有不同之處?

那么他們有什么不同之處呢?到底綁定事件有多少種方法呢?當(dāng)你發(fā)現(xiàn)一種方法在IE中不兼容的時(shí)候你還會問這到底是為什么呢?是我的語法錯(cuò)誤了嗎?還是怎么回事。一個(gè)又一個(gè)的問題結(jié)束之后你只好問自己:“天呀!我什么時(shí)候才能學(xué)好JavaScript呢?!“。

可能這樣下去你很難學(xué)好JS。其實(shí)還要告訴你,你離學(xué)好他并不遠(yuǎn)了,只是你不知道怎么走。原因在哪里?原因就是沒有系統(tǒng)的知識,原因就是沒有讀過《JavaScript權(quán)威指南》,他會告訴你綁定事件有四種方法,并且有兩種是基本方法,所有瀏覽器都支持他,另外還有兩種高級方法,一種是W3C標(biāo)準(zhǔn)方法,一種是IE標(biāo)準(zhǔn)方法,所以你知道為什么IE不兼容其中的一種高級方法了,對嗎?

現(xiàn)在事情具體化了,綁定一個(gè)事件的時(shí)候只需考慮這四種方法,你也不會再有那么多的疑惑了。你也會覺得自己弄懂事件了,下一步你應(yīng)該去弄懂其它問題了,你還會覺得自己在JS方面終于有進(jìn)展了,當(dāng)然你還會感覺到走出一個(gè)困境了。

二、必需了解JavaScript的歷史

你了解JS的歷史嗎?我當(dāng)然了解,他原本不叫JavaScript,他最早不是實(shí)現(xiàn)在IE中的。對,說的很好,可這不是最重要的,知道這個(gè)也不會成為高手,你必須了解的更詳細(xì),而且主要是了解功能進(jìn)化方面的歷史。

就像上面,為什么綁定事件會有那多的方法?為什么獲得一個(gè)元素會有那么多的方法?倒底是document.links[]正規(guī)一點(diǎn)?還是getElementsByTagName('a')正規(guī)一點(diǎn)?哪一個(gè)兼容性更好?還有多少這樣的方法?

要知道一個(gè)問題就夠頭痛了,十個(gè)問題你就無從下手,一百個(gè)問題你就會懷疑自己。一千個(gè)問題最后又回到那個(gè)問題“天呀!我什么時(shí)候才能學(xué)好JavaScript“?呵呵,事情往往就是這樣。解決的方法就是具體化他,去弄懂到底有幾種方法,為什么又有這些方法。這些問題一定會有答案,因?yàn)镴S不是外星人留下的東西,是人創(chuàng)造出來的,而那個(gè)人的思維也是有限的,不是嗎?

當(dāng)你知道document.links[]是遺留的document方法,而且這種遺留方法一共有5個(gè)。分別是anchors[],applets[],forms[],images[],links[]的時(shí)候有些問題就消失了,當(dāng)你還知道DOM標(biāo)準(zhǔn)保留了他們,你還知道所有瀏覽器都支持他們,你還知道他們就是所謂的“0級DOM”你又會走出一個(gè)“困境”。

三、JS有縱橫交錯(cuò)的知識結(jié)構(gòu)

JS的知識結(jié)構(gòu)是橫向和縱向交錯(cuò)的,這加大了理解他的難度,對這一點(diǎn)必需有一個(gè)清晰的認(rèn)識。下面解釋一下“縱橫交錯(cuò)”。

一般的知識都有橫向性。比如從大的方面JS分為核心部分和客戶端部分。這是橫向。核心部分又分為詞法結(jié)構(gòu),數(shù)據(jù)類型和值,變量,表達(dá)式和運(yùn)算符,語句,對象和數(shù)組,函數(shù),類,模塊和名字空間,正則表達(dá)式。這也是橫向。

客戶端部分可以分為BOM,DOM,事件,樣式,表單等,這些也是橫向的知識結(jié)構(gòu)。

一門技術(shù)很少用時(shí)間作為結(jié)構(gòu),但因?yàn)闉g覽器的發(fā)展是動(dòng)態(tài)的,不同時(shí)期的瀏覽器對JS有不同程度的實(shí)現(xiàn),而在不同時(shí)間針對當(dāng)時(shí)瀏覽器所編寫的網(wǎng)頁不能因?yàn)榧夹g(shù)的發(fā)展就不去考慮他,而且讓所有的網(wǎng)站都隨著技術(shù)的發(fā)展而重新編寫是不可能的,所以JS即要發(fā)展升級,也要保留向前的支持。所以就算有了更好的方法也必需保留之前的方法,就有了好多遺留的JS屬性和方法,比如“0級DOM”在新的W3CDOM中得到了保留,從某種程度來講他就是縱向的。

當(dāng)對知識結(jié)構(gòu)有了清楚的認(rèn)識,會有一個(gè)好處就是當(dāng)我要解決一個(gè)問題的時(shí)候我就能知道我要用的是哪一塊的知識。比如要得到一個(gè)元素在文檔中的位置就會知道用的是DOM中元素的屬性,要得到鼠標(biāo)指針的位置就要用事件對象的屬性。要獲得一個(gè)元素的引用可以用遺留的DOM也可以用W3C標(biāo)準(zhǔn)的DOM方法。這是件好事。

其實(shí)上面問題的核心就是系統(tǒng)化和具體化,這是我在學(xué)習(xí)過程中覺得很重要的一點(diǎn)。這一點(diǎn)確實(shí)為我解決了不少疑惑。

走出初學(xué)困境,我們需要系統(tǒng)的知識和具體化的思想。謝謝你能花時(shí)間讀這篇文章希望能對你有幫助。如果想討論更多的問題,歡迎加我的QQ:303551651。

JavaScript技術(shù)走出JavaScript初學(xué)困境―js初學(xué),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲精品中文字幕av | 久久久久久久久久久一区二区 | 四虎影院欧美 | 最新国产精品 | www.日韩免费 | 在线观看中文字幕 | 一级黄色片在线看 | 中文字幕av在线一二三区 | 日韩午夜电影 | 欧美日韩综合一区 | 中文精品视频 | 亚洲一区二区三区四区五区中文 | 国产精品久久 | dy天堂| 精品国产乱码久久久久久图片 | 一级黄色片毛片 | 成人免费看黄网站在线观看 | 暴草美女| 毛片一级片 | 日本不卡一区 | 国产成人精品午夜视频免费 | 国产日产欧产精品精品推荐蛮挑 | 有码一区 | 中文字幕一区二区三区四区五区 | 日韩免费视频 | 中文字幕国产视频 | 欧美日韩成人网 | 操操日 | 狠狠ri| 欧美一区二区在线 | 精品成人一区二区 | 国产99久久精品一区二区永久免费 | 成人午夜在线观看 | 亚洲精品欧美 | 欧美成人精品 | 午夜影院网站 | 欧美高清一区 | 神马久久春色视频 | 欧美日韩国产在线观看 | 久久久久国产一级毛片高清网站 | 亚洲视频免费在线看 |