說實話,不好學,沒HTMl基礎(chǔ)有點難度,JavaScript簡稱JS,之前的基礎(chǔ)就是HTML,HTML這門課程如果入門的話不是很難,刻苦點一月到兩月就能搞定,有HTML基礎(chǔ)的話,只要繼續(xù)刻苦一個月左右JS就能入門,但是想學到高深那就不容易了,js入門后在繼續(xù)學可以說也是有些難度的。總之先掌握HTML,這是一個基礎(chǔ),正如你說話要先從aoe開始一樣,HTML也很容易學的
海陵ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
HTML推薦書籍:深入淺出HTML和CSS
JS推薦書籍:《javascript入門經(jīng)典》
這些書籍可以幫助你怎么學習,其實不止看書,你也可以看看視頻,多看視頻講解學習可以讓你少走很多彎路,節(jié)省不少時間。遇見問題,常百度一下,現(xiàn)在百度只有你想不到的,沒有你查不到的,沒有你要的答案,也能查到相關(guān)的,何況可以提問嘛……
人就是在不斷的問題中解決問題,發(fā)現(xiàn)新的問題,繼續(xù)解決問題,這樣自己的自學能力和技術(shù)能夠得到很大的提升,關(guān)鍵就是不懂一定馬上問,千萬不要隨便拖,這樣進步才叫快……
還有補充一下,學習重在實踐,因為只有實踐你才能更好的發(fā)現(xiàn)自己的問題,一個問題解決了,一次不記得,下次繼續(xù)做的時候再手打一次,但是別抄之前自己寫過的代碼,除非你覺得自己這段代碼已經(jīng)掌握了,這樣為了節(jié)省時間才抄,否則還是練練手最好,,萬變不離其宗——熟能生巧……
如果你精通了,那就好辦了,一個網(wǎng)站可能就被你開發(fā)出來,然后就不愁找不到好工作了,至于你認為學到什么地步算精通,這你自己在學習中就可以感受到自己的能力,說的夠多了,一時說不完,就這樣,最后祝你成功,嘎嘎嘎嘎……
先講一下自己吧。 大一,學校不讓帶電腦。偶然的機會下對前端產(chǎn)生了興趣,大神學長們都推薦看這本書,然后就在沒有代碼實踐的情況下研究這本書。之前有pascal與c的基礎(chǔ),匆匆翻了一遍之后出現(xiàn)第一個問題:
對面向?qū)ο笥懈拍?,但根本不熟悉,思維還是停留在面向過程中,最嚴重的是自己覺得懂了。
然后在頗有自信的情況下去讀了第二遍,主要研究原型和編程模式的東西,出現(xiàn)了第二個問題:
有誤解,理解不透徹,有些急,最嚴重的是自己沒意識到這些。
然后快要期末考試了,各種高數(shù)大物,放下了一陣,偶爾看看一些零散的東西,也沒太記住。
轉(zhuǎn)
折出現(xiàn)在這個寒假,到家后還在看這本書,主要看閉包,沒幾天有了自己的電腦,終于迎來了代碼實踐,但當時特別想架站,就去看深入淺出nodejs(真心是
本好書,會上癮的那種精彩),這本書我還看不太懂,但我在讀他的時候突然意識到了自己之前看的js高級程序設計根本沒看到家,連門都沒摸到,然后重新去
讀,又有了一些新的感悟和動力,然后這兩本書穿插著讀,在看一些偏應用的知識,感覺好充實,這種充實是種很棒的讀下去的動力。
回到你的問題,直到現(xiàn)在,我仍然為自己在學習時無名的焦躁,急切,挫敗感,無知的自信,自以為是感到深深地后怕,但現(xiàn)在自己還沒擺脫他們。我很理解你的問題,我的建議就是簡單的“不要著急,靜下心來慢慢看”。
如果你像我一樣基礎(chǔ)不好,就別想著會讀著多順利,可以先適當放一下難點,多想想是什么亂七八糟的需求產(chǎn)生了這樣亂七八糟的代碼,理解到了就會深深地感受的這些創(chuàng)作者的智慧。
1、JavaScript 是一種直譯式腳本語言,是一種動態(tài)類型、弱類型、基于原型的動態(tài)腳本語言,內(nèi)置支持類型。主要應用于WEB前端使用。
2、從語言本身的難度上來說,javaScript的難度要大大低于JAVA、C++等編譯型的語言。但是很多學生都覺得JS難,這個問題在于javaScript這門語言比較靈活,他的好處就是靈活,但是這個靈活不理解的話,往往都會覺得難。
3、總的來說,javaScript屬于易學難精的那種,他的入門還是比較簡單的,就是后期高級別的難度比較大。
4、初學者不需要有畏難情緒,多看多學多練。一定要多動手寫代碼,多寫幾遍就能明白代碼的含義了。
5、希望對你有幫助,祝你學有所得。
喜歡的人自然喜歡,不喜歡的人主要是對css和事件討厭。
js這種不嚴格的語言也可以用嚴格的語法,相對比較輕松上手,寫其他語言的人也可以輕松入門。
但是js在深層次當中,會涉及css,html和事件、原型鏈等,所以有些人遇到這些的時候會不喜歡。
如果學到精通的話,找工作是能的,而且工作不會太差,但最好也學一些其他的東西作以輔助。
下面是我在 ZhaoPin.com 上搜索的結(jié)果:
職位:
高級Javascript程序員。
要求:
精通HTML DOM對象的Javascript編程
精通對象化Javascrip編程
有過編寫Javascript 控件的經(jīng)驗
熟悉Java編程
熟悉Server Side Javascript者優(yōu)先
還有很多這樣的工作,但他們一般要求的不僅僅是會 JavaScript ,一般都要求會些其他的東西,哪個公司不想要個全才呀,呵呵。
但在實際工作中,一般都是分工協(xié)作的,你干這個,他做那個的。
其實很多單位相求你既會這,又得會那,那樣的多是國企、或是中國的企業(yè),外企,還有中國的很多私企、個企,就沒有那么多的要求,甚至是工作經(jīng)驗也不需要,他們重視的是個人能力。
JavaScript 可是好東西呀,暑假回來我也要向 JavaScript 進軍了。呵呵。
說起JS的異步執(zhí)行機制,如果百度一下,你首先會發(fā)現(xiàn)阮一峰的寫過一篇關(guān)于異步機制的文章( ),等你津津有味又一頭霧水的看完,然后繼續(xù)看百度的其他結(jié)果,然后會發(fā)現(xiàn),阮一峰的這篇被另一個大牛樸靈給批判了
( )。
由此可見,關(guān)于異步執(zhí)行機制到底是怎么回事,因為涉及到瀏覽器底層機制,所以不容易徹底了解清楚,就算是大牛阮一峰,也只是通過英文文獻來了解,而且一知半解。我的這篇文章只是試圖盡可能簡單的描述一下JS的異步執(zhí)行機制,坦白說,我現(xiàn)在并不能完全弄懂這個機制,所以也不能完全解釋清這個機制,所以,如果我寫的越嚴謹,就越容易出錯,我只能簡單但是較模糊的描述一下:
JS的運行環(huán)境是一個很復雜的環(huán)境,它里面有非常多的復雜的名詞事物,用簡單又不嚴謹?shù)恼f法來說,運行環(huán)境里至少有下面這些事物:
有一個國外的web app,專門用來講解異步事件的門道 Loupe ,這個更接近真實情況。為什么我不講解這個?因為更復雜了,我們并不打算研究瀏覽器的底層,不是么?
然后說一下任務隊列里的任務。所有任務可以分成兩種,一種是同步任務(synchronous),另一種是異步任務(asynchronous)。同步任務指的是,靠主線程自己就可以執(zhí)行完成的任務;異步任務指的是,主線程執(zhí)行開始之后,需要靠主線程之外的線程才能完成的任務。由主線程決定是否要動用其他線程。以下內(nèi)容,不再提棧,只說主線程。
現(xiàn)在說重點:
異步任務的執(zhí)行機制是:
當主線程遇到一個異步任務,比如一個ajax請求,當主線程執(zhí)行到 xhr.send() 的時候,這個send命令是立即執(zhí)行的, 并不會像一些人想象的,拖到所有同步任務的最后面。 然后主線程向http線程發(fā)送指令,要求http線程向服務器發(fā)送請求。這里強調(diào)一下http線程,顯然它不是主線程的一部分,因為它可以并發(fā),如果你有100個ajax請求,每個都需要1秒鐘,是不是http線程要花100秒呢?并不是,它會并發(fā)100個請求,總共耗時大約1.01秒就完成了。
主線程向以http線程為代表的幾個線程發(fā)送指令之后,主線程就暫時不再管這個ajax任務了,而是去看任務隊列里的下一個任務。
http線程發(fā)送了請求之后接收反饋,收到之后,形成一個新的事件(可以叫做“我收到啦!”事件),然后插入到回調(diào)函數(shù)隊列中,因為回調(diào)函數(shù)隊列的優(yōu)先級很低,所以會排到總隊列的最后面,其結(jié)果就是:主線程把同步任務都完成了,才開始執(zhí)行異步事件的 回調(diào) 。 注意,并不是異步任務在全體同步任務結(jié)束之后才開始,而是異步任務的回調(diào)通常在全體同步任務結(jié)束之后才開始!異步任務跟異步任務的回調(diào)是兩回事!是兩個任務!一個鮮明的例子就是 setTimeout(fn, 1000) ,計時是從主線程遇到 setTimeout() 任務,然后分配給計時器線程,計時器線程開始干活的時候就開始計時了!只不過要1秒之后 fn 才執(zhí)行! setTimeout() 和 fn 是兩個任務! setTimeout() 是立即執(zhí)行, fn 才是1秒之后執(zhí)行。但是 setTimeout() 的執(zhí)行,人眼是感受不到的,因為并沒有什么地方有一個秒表告訴你 setTimeout() 開始執(zhí)行了;而fn的執(zhí)行,人眼能感受到,所以人們會錯誤的以為fn才是異步任務,其實fn并不是, fn 是個回調(diào)任務,往往 fn 是同步任務,比如 fn 可能是 console.log(123) ,這怎么會是異步任務。
所以,異步機制是瀏覽器的兩個或以上常駐線程共同完成的,異步請求是JS主線程和其他某個線程共同完成的,JS的執(zhí)行線程發(fā)起異步請求(這時瀏覽器會開一條新的HTTP請求線程來執(zhí)行請求,這時JS自己的任務已完成,繼續(xù)執(zhí)行線程隊列中剩下的其他任務),然后在未來的某一時刻"任務隊列"線程監(jiān)視到之前的發(fā)起的HTTP請求已完成, "任務隊列"就會把完成事件插入到JS執(zhí)行隊列的尾部等待JS處理 。
最后專門說說定時觸發(fā)(settimeout和setinterval)。
定時觸發(fā)是由瀏覽器的定時器線程執(zhí)行的定時計數(shù), 然后在定時時間到達之后,定時器線程把定時處理函數(shù)的執(zhí)行請求插入到JS回調(diào)隊列的尾端。
這個1到底是100毫秒之后彈出,還是1000毫秒(或更多時間)后彈出呢?又或是1100毫秒之后彈出?
答案是,1000毫秒多一點點之后彈出。
原因:瀏覽器會先執(zhí)行setTimeout,也就是開始計時,然后開始執(zhí)行sometask,執(zhí)行了1000毫秒,然后去回調(diào)隊列里看回調(diào)任務,alert(1);早就恭候了,因為定時100毫秒之后alert(1)就可以執(zhí)行了。所以,等1000毫秒的任務完成,1就會立即彈出,所以答案是1000毫秒多一點點之后彈出。
所以用這兩個函數(shù)的時候,實際的執(zhí)行時間是大于或等于指定時間的,不保證能準確定時的。
最后強調(diào)一下setInterval。比如我希望每100毫秒打印一個1。然后,又有極端情況,就是sometask耗時1000毫秒。你以為sometask結(jié)束之后會打出10個1么?并不會,只會打出1個1,因為setInterval第一次讀秒結(jié)束之后,回調(diào)隊列出現(xiàn)了一個alert(1),根據(jù)之前的理論,并不會執(zhí)行。又過了100毫秒之后,計時器線程會去觀察回調(diào)隊列是不是已經(jīng)有了alert(1),如果有,就不再往回調(diào)隊列里加alert(1),目的就是為了避免回調(diào)疊加執(zhí)行。
總之,你需要記住,異步任務就是主線程在任務隊列里看到了這個任務,看了一眼之后就然后安排別的線程幫忙,然后主線程就忙別的去了,別的線程幫忙完事之后,再在隊列末尾放一個新任務叫“幫忙完畢”,到此異步任務本身就完事。主任務看到“幫忙完畢”任務之后,就去執(zhí)行回調(diào),回調(diào)執(zhí)行完,這個異步任務連同回調(diào)就全都完事。然后,如果并沒有回調(diào)。。。沒有就沒有唄。
分享文章:javascript感受,javascript心得體會
文章出自:http://www.rwnh.cn/article30/dsigcpo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、網(wǎng)站排名、網(wǎng)站收錄、品牌網(wǎng)站設計、軟件開發(fā)、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)