jQuery、Ajax 和 JS 之間是什麼關係,如何學習 JS ?

先跟大家說一下我的情況,我是個剛學Web開發的小白,之前沒有任何編程經驗。目前在學習Web中的前端,在學習HTML和CSS上都已經徹底弄懂了,並且能夠運用DIV+CSS製作出像騰訊網首頁那樣的靜態網頁,但學到JavaScript(以下簡稱「JS」)這裡我就困惑和迷茫了,好多都弄不懂,主要弄不懂的問題如下所示:

1.關於JS它是腳本語言還是編程語言?

2.JS庫是什麼概念?有什麼用?如何使用這些庫?JS庫和JS有什麼聯繫?

3.JQuery,node.js,Prototype,AJAX,HTML DOM,E4X和JS有什麼關係?

4.使用JS庫需要像PHP那樣需要本地環境搭建之類的嗎?JS庫可以直接鑲嵌在HTML文檔里嗎?

5.JS對象是什麼?它可以針對HTML裡面的DIV或其他元素塊產生交互效果嗎?

問題就問到這,問題雖多但請大神們花點時間,耐心和知識講解給我聽,按照序號所對應的問題把你的答案也標上序號發給我,非常感謝!!!


&>&>1.關於JS它是腳本語言還是編程語言?

腳本語言和編程語言應該不是二選一的關係吧, 你應該問的是編譯語言吧?js不需要編譯。

&>&>2.JS庫是什麼概念?有什麼用?如何使用這些庫?JS庫和JS有什麼聯繫?

考慮到你是新手, 那麼我換個寫文章的比喻。 比如你寫文章的時候要講另一件事情, 如果你這麼說:「就像xx書里的xx故事一樣」,一下子就省了幾百幾千字來描述那個故事, 豈不是很爽。 庫也是一樣的原理。 沒必要每次提到空城計, 就抄一遍三國演義。 只要把三國演義放到旁邊讓讀者自己去翻就可以了。 庫就是干這個的, 把公用的東西抽出來, 做個函數直接調用。

&>&>3.JQuery,node.js,Prototype,AJAX,HTML DOM,E4X和JS有什麼關係?

這個問題過於複雜了。 我們拆開一個一個來:

jquery: 是一個js庫

node.js: 是js的伺服器端使用方式。

prototype:這個有兩種, 一個是js的繼承機制,還有就是有一個js庫剛好也叫prototype

ajax:非同步的JavaScript和xml,是一種DHTML技術。不過不一定非用xml,現在json用的更多, 名字里的x更多是個歷史意義。

HTML:如果說js是一本故事書上的情節, 那麼HTML就是紙張。 HTML的作用是描述網頁上有什麼, js是描述如何用。

E4X:這個還真沒用過, 用js操作xml的。

&>&>4.使用JS庫需要像PHP那樣需要本地環境搭建之類的嗎?JS庫可以直接鑲嵌在HTML文檔里嗎?

js庫就是一個js文件, 如何使用js文件就如何使用js庫

5.JS對象是什麼?它可以針對HTML裡面的DIV或其他元素塊產生交互效果嗎?

略複雜, 等前面的理解完了再考慮這個問題。

然後一如既往的再推薦下一本書:《JavaScript語言精粹》

如果你沒有徹底閱讀過其他js書籍, 那麼這本是最合適的。

沒有任何廢話全是乾貨。而且薄。讀完一本, 直接躍身一變成為中級前端。

純屬吐血推薦, 我沒有收作者的錢,我倒是想收, 人家不認識我。


js剛出來時只是作為小玩具的腳本語言,一開始目的只是做瀏覽器內部的一些簡單的數據校驗之類的工作。但因為瀏覽器廣泛支持這種語言,沒第二種語言是瀏覽器全支持的,但一開始程序員們對javascript的特性了解不足,可用的組件也不夠非富,導致很多功能用純javascript不知道如何實現,於是發明了activex,flash,java Applet等插件技術,使用別的語言來改善這一點。

javascript第一個翻身是ajax技術的推廣,在1998年ie4中於XMLHTTP組件已經提供,但一般只用於少量的數據更新,沒有大規模的使用。但到了2005年,對於XMLHTTP的大規模使用有了一個新名詞ajax,並大紅大紫,ajax簡單的說是使用javascript調用XMLHTTP在後台與伺服器交互,局部刷新網頁內容的方案。從而使javascript的交互能力得到極大提高,Gmail對ajax的成功運用,運行純javascript實現單頁程序提供了完美的樣版。在這之前web電子郵件都是一堆iframe組合,在這之後基本都是一個頁面解決問題。

與此同時,Prototype.js作為第一個廣泛運用的javascript運行庫(Prototype同時也是js原型鏈的關鍵字,這個庫取名由此而來),目的在於消除各種瀏覽器之間javascript與dom對象的細微差別,加快開發效率,提供各種簡化操作,由此改進了js的開發模式,可通用開源的組件開始流行,而不是原來原始的代碼拼接。mootools和jQuery等運行庫在此基礎上進一步完善,提供了更方便更簡潔的操作dom的方式,以及更好的組織代碼的方法,超大規模的javascript程序才有可能方便的開發和流行。在HTML5推廣後,純瀏覽器的表現能力開始接近flash,使用純javascript寫網頁遊戲已經可行。

第二個翻身則是google的V8引擎發布,將javascript的運行效率提高到了一個新的層次,chrome的運行速度比ie6快了10倍左右(jQuery建立10000個dom對象),node開發時尋找一種廣泛使用又沒有歷史包袱,很好的支持非同步操作的語言,用於伺服器開發,左看右看,這完全就是給javascript準備的嘛,因為javascript原來在伺服器端根本就一無是處,結果廣大前端一看,哇,js也能寫伺服器了,爽,結果掉坑裡了。坑不坑的不說了,但node就這樣火了。

javascript是一種混合範式語言,作為玩具開發時已經有了這種意識比較超前,這也保證了這種語言的活力而不是局限在玩具範疇,它可以使用面向過程,面向對象,和函數式開發。面向對象你要理解 Every thing is object. 所有的都是對象,數字是對象,字元串是對象,函數是對象,dom也是對象,對dom的操作也可以是對象(事實上就是函數)。面向對象開發這個大坑幾百個字說不清楚的,慢慢學就是了。


1.關於JS它是腳本語言還是編程語言?

是腳本語言.當然腳本語言也是一種編程語言. JS是直接由瀏覽器來運行的, 所以瀏覽器都有自己的JS引擎.

2.JS庫是什麼概念?有什麼用?如何使用這些庫?JS庫和JS有什麼聯繫?

JS庫, 你可以理解為是JS代碼的集合, 讓你使用更方便的, 這和其它語言的庫在概念上是沒區別的.你可以簡單認為是別人已經實現了某個方便的功能, 你直接拿來調用.

3.JQuery,node.js,Prototype,AJAX,HTML DOM,E4X和JS有什麼關係?

JQuery, 你可以簡單認為是簡化用JS操作DOM的庫.

node.js是運行在服務端的, 你現在不必了解它, 它和前端開發沒什麼關係.

Prototype和JS的對象繼承方式有關

AJAX 是一種在線非同步獲取服務端數據的方式, 一般用JS代碼來操作

HTML DOM 是 JS代碼主要的操作對象

E4X是一種標準, 能讓JS更好得操作XML.

4.使用JS庫需要像PHP那樣需要本地環境搭建之類的嗎?JS庫可以直接鑲嵌在HTML文檔里嗎?

不需要搭建本地環境, 正如上面所說的, JS是瀏覽器來運行的, 你只需要一個支持調試的瀏覽器就行了, 一般推薦chrome或firefox.

可以直接鑲嵌在HTML文檔里

5.JS對象是什麼?它可以針對HTML裡面的DIV或其他元素塊產生交互效果嗎?

JS是一種編程語言, JS對象屬於編程語言里的對象含義. 但它可以直接指代並操作DOM對象, 所以可以產生交互效果, 實際上JS就是為了操作HTML的元素所產生. 在HTML5與CSS3未出來之前, 很多酷炫的頁面效果就是用JS實現的


非按照你的要求回答。

你可以先學著用jquery操作dom,然後你就明白js大概用來幹嘛的了(當然js遠不是這麼簡單的 不過才學了解到這些差不多了 更高端的使用以後再說)

Ajax 也要用了大概就知道是幹嘛的了 一句話說就是js去請求服務端數據 然後你拿到返回數據再處理。


哈哈


你這個別人如果認真答肯定累死了,都是些百度就能找到的東西,沒有什麼價值,找個靠譜的引路人這些都不是問題。

js沒有你想的那麼簡單,不要想著一下子吃掉你會吐出來的。


推薦閱讀:

為什麼很多網站的靜態資源會使用獨立的域名?
DOM, DOCUMENT, BOM, WINDOW 有什麼區別?
給bootstrap模態框中的關閉按鈕添加事件,alert出的this竟然是鏈接?
pjax 是如何工作的?
Vuex與Redux的主要區別在哪裡,兩者各有什麼優缺點?

TAG:前端開發 | JavaScript | jQuery | Nodejs | 前端工程師 |