目錄
入门的书:
提高阶段:
首頁 web前端 js教程 写给想学习Javascript的朋友一点学习经验小结_基础知识

写给想学习Javascript的朋友一点学习经验小结_基础知识

May 16, 2016 pm 06:15 PM
javascript

当然只是个人的经验,有什么不对的也请高手见谅和指正。

关于到培训学校学习的忠告:别说现在没有这样的学校,就是有专门的学校也不要去,因为不会有好的老师的。不要浪费你自己(很可能是你父母)的钱和时间。趁早死了这个念头。

关于培训学校的这个我想我要比一般的朋友更有发言权,因为我本人干英语培训将近2年,我很清楚培训市场的情况,你很难碰到一个好的老师。英语可能还好些,毕竟英语说得好的老师还比较多,长期跟老外泡在一起,确实对口语能力的提高很显著,但是代价是很昂贵的。而你现在要学的是Javascript,呵呵,好的前端工程师可不多!

我的个人观点,有资格和有能力的教好Javascript的老师,一定要是个好的有着丰富的前端开发经验的前端工程师。大学的老师,教授可能他们中很少有人符合这个要求,而好的前端工程师,都忙着自己的工作去了。剩下的有时间去教Javascript的人,呵呵,就不多说了。

这里也发点牢骚,我们在大学校园里学习的东西,你学的时候根本不知道这个东西有什么意义,你自己不去钻研,老师他是不会告诉你的。在培训学校,呵呵,也差不多。

如果不是一个好的前端工程师,他很难告诉你为什么我们现在提倡使用闭包把以前的全局变量放到闭包中作为闭包函数的局部变量?他也很难对 Javascript变量作用域的相关知识跟你讲透彻。在Javascript里能够形成scope(作用域)的东西有哪些?为什么说全局变量是魔鬼?闭包又是怎么产生的作用域?等等这样很基础,但很重要的知识的意义,他不清楚,将给你听,让你明白这些知识和他们的意义就更困难。

呵呵,所以我的建议,想学Javascript,还是多跟你的身边认识的朋友,特别是那些从事前端开发的工程师多交流和学习。自己要多钻研。呵呵,不认识前端工程师,就到脚本之家与蓝色理想来多看看(bbs.blueidea.com,记住!这可不是广告哦!),把你不清楚的问题提出来,但是我这里要说一个好的学习习惯。什么时候提问?

什么时候提问?这个也是问题吗?对的,很多人,也是很多在校学生的一个不好的学习习惯,一有问题就问别人请求帮助。我个人这个是个坏习惯。难道问问题也是个坏习惯?对的,我个人觉得,你问问题寻求别人的帮助,应该是在你自己已经动脑经思考,通过各种途径查阅相关资料都无法获取问题的最终解决办法的情况下再来提问?这样你已经对你要解决的问题做过研究,有一定了解,你可以更详细的告诉别人你想要的答案大概是什么样的,或者说你可以把你想描述的问题讲的更清楚。这样别人来解决你的问题的时候,也可以更快速的作出解答。我想你学起来,对这个问题的理解也会更深刻些。

好了,好像扯得有些远了。来谈谈怎么学习Javascript吧!先给大家泼点冷水,我想告诉你的是:Javascript要比其他的开发语言都难学好!

为什么?因为就目前来说,大家(国内甚至是国外的程序员)普遍对Javascript这门编程语言(请允许我这么说)了解和研究得不够深,至少不像大家对 JAVA,C#等这样的语言了解的和研究得那么透。所以这个就引起了另一个问题,现在市面上Javascript的书籍对Javascript这门语言的讲解都不够深入和全面。当然是相对JAVA,C#这样的语言来说。所以这就导致了,学Javascript很困难。当然学任何一门编程语言,特别是学好,学精都不容易。

不过也有好的消息,就是现在大家对Javascript的重视和更深入的研究,现在Javascript书籍里讲解的内容也要比4年前质量高出太多了,可以这么说,你现在开始Javascript正是时候哦!呵呵!所以这里也给大家一个经验,买Javascript的书,最好不要买4年前,也就是2005 年前出版的。最好买近两年出版的书。

说到这里,我想说说一个现象,随这大家近几年对Javascript的重视和研究,主要是很多传统的程序员开始学习和研究Javascript,他们把面向对象编程的思想带入到Javascript的前端开发,极大的促进了Javascript的推广和发展。这点要十分感谢他们。也许是处于这些程序员的传统的开发的思想的影响,现在我们的Javascript库如雨后春笋般的出现。

呵呵!JAVA有JAVA的库和各种各样的框架,C#也是模仿JAVA,也是有着丰富的开发库。这些库为我们的开发带来了极大的方便,这是个很不错的事情。所以这些传统的程序员在从事前端的开发的时候,也为自己编写了库。我们很熟悉的就有prototype,jQuery,YUI,Ext等等,我就不一一列举了。当然这些库的出现也为我们的前端开发带来了极大的方便,但是事情都有两面性的,在这些库的出现后,在给我们的开发带来便利的同时,也让我们的很多朋友产生对库的依赖,可能严重点的,没有库了,给他个记事本(我们姑且不提开发效率)可能就不知道如何下手了。

如果仔细想想,这个也是很可怕的事情。为什么?因为大家都不再去花心思去研究Javascript底层的知识,只是一味的在这些库的帮助下,构建那些炫目的特效(还好,这些库都是免费的)。或者干脆直接用别人写好的插件。都不知道万一这些库要是开始收费(只是瞎想想),怎么办?还有就是这些库比如有别有用心的人,在中加点什么恶意的东西,我想很难有人会从头到位把一个库研究个透。你怎么办?最严重的就是编程能力的下降,但给人的感觉是入门的门槛更底了。不要被“The Write Less, Do More”这样的广告迷惑了,因为在你加载这个库的同时,别忘了“Size of your web page is much bigger, or say the size is HUGE".

所以当大家使用这些库的时候,我希望大家不仅仅是使用者,也要用心去阅读这些库的代码,从中学习。收获会很大的,而且说不定,你会发现可个改善地方,甚至是有错误的地方。这个是很有可能的。还有就是我刚才提到的,这些库的开发者很多都是从传统的程序员转型过来,或者说是因为开发需要而开始学习 Javascript,很可能会有错误。或者说受以前学习语言的影响,写的程序更像是在写其他的语言,而不是写Javascript,执行效率并不高。所以不要迷信库。

问几个问题,你清楚jQuery是怎么实现CSS(3)和XML的XPath选择器的吗?jQuery又是怎么实现eventHandle的?怎么处理其中的浏览器兼容性问题的?

如果你还不明白我提的问题,那么请仔细看看jQuery是怎么实现的吧!如果你还读不懂它,还是多看看我要给你介绍的Javascript的书吧,了解 Javascript的底层和基础的知识。让自己能读懂jQuery,让自己不要jQuery也能实现Dom的拖动,让自己也能写出自己的库。当然这话我说得太大了。不过只要你是真正研究Javascript和相关的知识,你也可以做到的。

绕了这么大一圈,现在让我们正式开始吧,来介绍几本学习Javascript的书吧。(以下介绍的书都是本人自己购买阅读过的,对了我不崇洋媚外,一条真理:不要买中国人写的Javascript书)

入门的书:

《Javascript高级编程技术》:不要被“高级”这两个字吓到,这个书其实是本很不错的入门的书,因为这本书也很详细的介绍了javascript 的全部内置对象和语法,并且介绍了面向对象的思想,DOM、BOM的知识,正则表达式,高级的DOM处理。Ajax的知识,还是很全面的。而且个人认为这本书对基础知识的介绍并不比其他的同类书逊色。比起《Javascript权威指南》(我当时买点的是第4版),我觉得更详细些和更清楚些。在《指南》的第4版中,我觉得那本书中讲的东西有点混乱。感觉一个知识点还没有讲清楚,就给你一个什么类,看得不明不白的。因为没有看《指南》的第五版,所以这里不推荐给大家。而且《高级编程》这本书要比《指南》便宜不少。《高级编程》中也提出了采用功能(future)探测来取代浏览器版本探测来处理脚本兼容性的处理。个人觉得《指南》有的,这本书也都说了。还有我前面提到的,这本书的作者是YAHOO的资深的前端工程师,你可以在他的网站下载到相关的代码。

《Javascript DOM 编程艺术》:我个人的感觉是学习DOM编程的经典入门书籍,作者是webstandards.org的创始人之一,书中以浅显易懂的语言,教你一步一步的来讲解DOM编程,一点点地提升网站的用户体验。书中一直强调不唐突的脚本开发,网站要向后兼容,强调网站的可访问性。这个也是大家在做前端开发时应当努力追求的,也是必须要有的开发指导思想。可惜很多的后台开发的程序员,根本没有这个概念,所以你在开发的时候,一定要给你的程序员多洗脑。呵呵!

《CSS权威指南》第三版:做前端开发,你必须要了解CSS,书中对CSS2的介绍很详细了。仔细的看吧,我每次看的时候,有会有新的收获。

《网站重构》、《CSS网站布局实录》(唯一一本推荐的国人写的书):看完了,你会知道为什么学WEB标准?你会知道前端工程师的工作很重要。

提高阶段:

《Javascript DOM 高级编程》:这本书里不光详细的介绍的DOM编程的技巧,也讲了使用面向对象编程的方法,使用命名空间来管理书中所写的开发库,在不断的学习中,你的个人 DOM Javascript库也不断的充实。呵呵,就像我前面说的,你可以写出自己的库了。当然书中的代码比较松散,还不能运用到实际的企业级的开发中。但是书中对闭包的介绍和面向对象的开发思想,会使你对JS的认识又提高了一个层次,虽然对面向对象开发的讲解还不够深。

《XML开发指南》:我们知道ajax,其中X就是指的XML,所以要了解XML的相关知识,你这本书,是一定要看的。看了之后你会发现XML要了解的东西实在太多了,可能跟你了解的东西相比,你才知道点皮毛。对了,这里说下,我并不推荐你使用XML来作为你的Ajax的程序的数据的载体。为什么?因为很不经济。你先把数据转换成XML文档,然后再通过Javascript把XML文档中的数据提出来,把文档转成数据。而浏览器对XPath处理的兼容性的处理,你会很发狂的。现在我们有一个代替他的东西JSON。但是由于XML已经是很多标准的默认数据通讯载体,比如RSS等,所以你还是得掌握。

个人觉得学Javascript看这些书基本差不多了。当然这些书也建议你看看《精通Javascript》、《PPK 谈 Javascript》、《CSS高级技巧》、《Ajax in Action》、《Ajax高级编程》、《JavaScript:The Good Parts(影印版)》。

看完这些书,你了解了Javascript的相关知识,了解了CSS(你会知道CSS都有哪些选择器),你了解了XML的知识。呵呵,基础的开发你应该都可以自己解决了。而且你对Javascript的面向对象的开发也有了了解,有着向后兼容的开发思想。显然你看完这些书,你对WEB标准也会有一个更深层次的理解。

当然,想成为一个优秀的前端工程师,你要学习的知识并不只有这些,你也要知道SEO的优化知识,因为你写的页面要对搜索引擎也要友好,要结构合理。你还要了解SQL和数据库,最好还要了解C#等后台编程的语言。两个主要原因,要全面的提高自己,而且要充分的理解面向对象的编程,这些传统语言的思想更成熟,但要知道Javascript跟这些传统的编程语言的继承机制是不一样的。所以不要用Javascript来写C#。还有一个重要的原因,你要跟后台的程序员合作,要他们更坚决的执行你的不唐突的开发思想,你必须要经常给他们洗脑。但是你说的话要让他们听得进去,他说的东西你要了解,而你最好也能给他一些有好的建议,他们才会听你的。为了我们WEB标准的开展,辛苦点就辛苦点吧!

这里要补充的就是,前端开发你要自己努力学习还有JSON和正则表达式,目前还没有很详细的介绍正则的书,然后就是AJAX程序中取代XML的JSON的数据载体,掌握JSON要比XML容易得多。最后就是大家也是我提到过很多次的闭包的使用,面向对象的开发的思想。

呵呵,最后就是多练习,把你学到知识运用到实际的开发中,常跟朋友多交流,我也希望能跟大家多交流心得。大家共同进步!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用WebSocket和JavaScript實現線上語音辨識系統 如何使用WebSocket和JavaScript實現線上語音辨識系統 Dec 17, 2023 pm 02:54 PM

如何使用WebSocket和JavaScript實現線上語音辨識系統引言:隨著科技的不斷發展,語音辨識技術已成為了人工智慧領域的重要組成部分。而基於WebSocket和JavaScript實現的線上語音辨識系統,具備了低延遲、即時性和跨平台的特點,成為了廣泛應用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實現線上語音辨識系

WebSocket與JavaScript:實現即時監控系統的關鍵技術 WebSocket與JavaScript:實現即時監控系統的關鍵技術 Dec 17, 2023 pm 05:30 PM

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

如何利用JavaScript和WebSocket實現即時線上點餐系統 如何利用JavaScript和WebSocket實現即時線上點餐系統 Dec 17, 2023 pm 12:09 PM

如何利用JavaScript和WebSocket實現即時線上點餐系統介紹:隨著網路的普及和技術的進步,越來越多的餐廳開始提供線上點餐服務。為了實現即時線上點餐系統,我們可以利用JavaScript和WebSocket技術。 WebSocket是一種基於TCP協定的全雙工通訊協議,可實現客戶端與伺服器的即時雙向通訊。在即時線上點餐系統中,當使用者選擇菜餚並下訂單

如何使用WebSocket和JavaScript實現線上預約系統 如何使用WebSocket和JavaScript實現線上預約系統 Dec 17, 2023 am 09:39 AM

如何使用WebSocket和JavaScript實現線上預約系統在當今數位化的時代,越來越多的業務和服務都需要提供線上預約功能。而實現一個高效、即時的線上預約系統是至關重要的。本文將介紹如何使用WebSocket和JavaScript來實作一個線上預約系統,並提供具體的程式碼範例。一、什麼是WebSocketWebSocket是一種在單一TCP連線上進行全雙工

JavaScript與WebSocket:打造高效率的即時天氣預報系統 JavaScript與WebSocket:打造高效率的即時天氣預報系統 Dec 17, 2023 pm 05:13 PM

JavaScript和WebSocket:打造高效的即時天氣預報系統引言:如今,天氣預報的準確性對於日常生活以及決策制定具有重要意義。隨著技術的發展,我們可以透過即時獲取天氣數據來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來建立一個高效的即時天氣預報系統。本文將透過具體的程式碼範例來展示實現的過程。 We

簡易JavaScript教學:取得HTTP狀態碼的方法 簡易JavaScript教學:取得HTTP狀態碼的方法 Jan 05, 2024 pm 06:08 PM

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

javascript如何使用insertBefore javascript如何使用insertBefore Nov 24, 2023 am 11:56 AM

用法:在JavaScript中,insertBefore()方法用於在DOM樹中插入一個新的節點。這個方法需要兩個參數:要插入的新節點和參考節點(即新節點將要插入的位置的節點)。

JavaScript與WebSocket:打造高效率的即時影像處理系統 JavaScript與WebSocket:打造高效率的即時影像處理系統 Dec 17, 2023 am 08:41 AM

JavaScript是一種廣泛應用於Web開發的程式語言,而WebSocket則是一種用於即時通訊的網路協定。結合二者的強大功能,我們可以打造一個高效率的即時影像處理系統。本文將介紹如何利用JavaScript和WebSocket來實作這個系統,並提供具體的程式碼範例。首先,我們需要明確指出即時影像處理系統的需求和目標。假設我們有一個攝影機設備,可以擷取即時的影像數

See all articles