关于学习javascript的一些建议

有被朋友或同事问到过,要如何学习前端技术,他们大多是已经掌握其他语言的程序员,或是计算机相关专业的在校生。

每次被问到,总要组织回忆一番,本着DRY原则,我还是根据我学习javascript(下文都简称JS)的经历,总结一些建议出来吧。

以后如果荣幸的被问起,直接发链接给他/她就可以了。

注: 以下内容仅根据本人的学习经验写成,绝非唯一方法, 仅供参考。 且由于本人水平有限,下面说的只是如何从不会JS,到简单入门原生JS,勉强算是领进门的一步。 至于更高级的话题, 请参考其他更专业的文章。

1. 前提

  我认为,知识或技能,和财产不同,是无法赠予的。

  要学习知识,或是掌握一门技能,第一个最大的前提,是你必须要动手去做。要学习前端或javascript技术,你必须要做好真正动手写javascript代码的准备。

  简单来说就是,你需要主动的学习。

2. 对你学习有帮助的能力

  下面这些能力并非必须,如果你还不会,那么以下这些能力可能会是你学习JS途中的附带收获:

  1. 能使用搜索引擎来自行解决问题: 这是在网上自学的一个很重要的基础技能

  2. 将任务拆分的能力: 如果能把一个看似巨大的难题,拆分成很多相对简单且自己能解决的问题,那么你的学习之路会顺畅很多,不容易因无法解决的难题而止步。

3. 设定并实现一个或多个目标

  所谓目标,可能是在页面中输出“hello world”,或是你看到某个网站的某个效果很炫,那你就能把这个效果作为目标。 然后用尽你的聪明才智、刻苦耐劳, 把这个目标实现出来。

  刚开始不建议把目标设得太难,这很可能打击你的积极性,让你继续不下去。

  如果你发现原本设定的目标太难时,可以换一个稍微简单一点的目标。

  实现目标过程中,你可能需要把目标拆分,变为若干个更容易解决的问题。

  假设你找到的第一个目标,是在屏幕上输出hello world。

  如果你是一个完全对javascript没有任何了解的人,可能你需要完成以下步骤:

    1. 搜索一下,用什么软件可以写 JS?   

        你可能会搜到Dreamweaver、sublime text 2、 notepad、 chrome的控制台 等等。

    2. 怎样能最简单的让JS运行并看到结果?      

        你可能需要编写一个html文件,并在里面添加script标签,并写下JS代码,然后在浏览器中打开这个html文件来观察结果。 这可能需要你顺便查找一些html的基础知识,你甚至可能会接触到css的概念。

        或你会查到,可以直接在chrome的控制台(按F12,点击console选项卡)下,直接书写js代码,按回车后就能执行。且通过console.log(XX)就能把你的代码结果(XX)输出到控制台 中。

    3. 查找JS关于变量声明、赋值的方法。 如果你是通过html输出, 还需要查找怎样用js在html中输出。

    …………

  第一个目标,如果不是很难,应该很快就能实现。 即使比较难, 通过拆分,和不懈的努力, 你也终究会实现的。

  查找技术问题的话, 推荐到google或https://stackoverflow.com/, 百度、必应能解决的技术问题非常有限, 不过由于google常年被墙开始时只好先将就在百度、必应上碰运气了。

  这一步的主要目的,是让你对JS有基本的认识, 对JS中的多个技术点建立起模糊的概念。接下来,你可以就已经了解到的“点”进行扩展学习,让这些点连接起来,形成你对JS更广阔的认知。

4. 开始系统的学习JS

  如果你已经实现了自己定下的目标,你应该对JS和相关的知识已经至少有一些模糊的概念了。

  你在实现目标过程中,已经碰到很多的JS概念(一般是些名词)。 也许是在写代码时自己发现的,也许是在搜索问题时顺带看见的。

  你对它们好奇,但是还不太了解,甚至不知道怎么学习它们,或不知道怎么将它们和你已知的东西连起来。

  这些概念可能包括对象、函数、闭包、原型链、作用域等等等等。

  这个时候,我建议你就可以开始较系统的学习JS了。

  方法可以是在网上,根据你听过却不了解但是又感兴趣的名词,搜索一些技术博客。

  对一些基础知识,你也可以看看W3C School.http://www.w3school.com.cn/

  但是,我认为最好的办法,是买一本好书来看,并跟着书的内容做一些练习。 有两本经典著作,我认为很适合作为JS入门:

    《JavaScript高级程序设计》       (Prefessional JavaScript for Web Developers)  泽卡斯 (Zakas. Nicholas C.) (作者), 李松峰 (译者), 曹力 (译者)

    《JavaScript权威指南(第六版)》  (JavaScript:The Definitive Guide,Sixth Edition) 弗兰纳根(David Flanagan) (作者), 淘宝前端团队 (译者)

  入门的话,读其中一本就够了,也不一定要完全读完。 我只读过第一本, 我觉得把前面十章左右读完,并配合练习, 已经能解决工作中遇到的大部分问题,并能大致说出其中的原理了, 一般问题应该已经难不倒你。

  到这时,我觉得你的JS已经算是入门了。  

5. 修行在个人

  入门只是学习的开始,这时你可以运用你的技能,实现各种需求。 在实现各种需求时,你会遇到更多各种各样的问题。

  有些问题可能已经不是单纯写JS代码能很好解决的了。 你可能需要配合一些框架(jquery、angular等等),或一些工具(grunt、sass等等),或一些设计模式, 或一些业务知识。

  随着解决更多问题, 你也会积累更多的知识。

  之后会是漫长的积累过程, 通过项目经验、看书、看博客、思考、讨论等等,积累你的经验和知识。

  你需要持之以恒和刨根问底。

  总之,之后就看你自己的了。还是和前提差不多的那句话:你需要主动。

6. 最后, 推荐几个我认为好的网站或博客和一些我觉得不错的书(可能和上面有重复)

  文档类:

    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript

  问答类:

    https://stackoverflow.com/

  大神博客:

    http://www.nczonline.net/

    http://www.cnblogs.com/cloudgamer/

    http://www.cnblogs.com/rubylouvre/

  不知如何归类:

    https://github.com/

  书的话,已经有一篇博文(不完全关于JS)整理过了,直接上链接: http://www.cnblogs.com/bee0060/p/3972188.html

------------------------------------------------------------------

多谢观看

时间: 2024-10-05 14:32:12

关于学习javascript的一些建议的相关文章

如何正确学习JavaScript

学习时长:6-8周学习前提:中学水平,无需编程经验 更新(2014-1-7) 在Reddit上创建了一个学习小组January 2014, “Learn JavaScript” Study Group on Reddit 目录 不要这样学习JavaScript 本课程资源 1-2周(简介,数据类型,表达式和操作符) 3~4周(对象,数组,函数,DOM,jQuery) JavaScript终极编辑器:WebStorm 第一个项目-动态问答应用 5-6周(正则表达式,Window对象,事件,jQue

如何理解并学习javascript中的面向对象(OOP) [转]

如果你想让你的javascript代码变得更加优美,性能更加卓越.或者,你想像jQuery的作者一样,写出属于自己优秀的类库(哪怕是基于 jquery的插件).那么,你请务必要学习javascript面向对象,否则你无法更灵活的使用javascript这门语言. 什么事闭包?到底什么是原型?(知道闭包和原型的,就算得上是javascript的高手了.但真正能够理解,并且灵活运用的人并不多)到底该如何学习javascript中的面向对象呢?在javascript这么语言正如日中天,相信不少人正在为

学习JavaScript中的异步Generator

本文和大家分享的主要是javascript中异步Generator相关内容,一起来看看吧,希望对大家学习javascript 有所帮助. 异步的generators和异步iteration已经到来 ! 这是错误的, 它们现在还在 阶段 3 ,这表示他们很有可能在JavaScript未来的一个版本中发布. 在他们发布之前,你可以通过 Babel 来在你的项目中使用还在阶段3的建议内容. 网站基本上还是一些分散运行的应用,因为任何在语言上的修改都会造成永久的影响,所以所有的未来的版本都需要向后兼容.

一步步学习javascript基础篇(7):BOM和DOM

一.什么是BOM.什么是DOM BOM即浏览器对象模型,主要用了访问一些和网页无关的浏览器功能.如:window.location.navigator.screen.history等对象. DOM即文档对象模型,针对HTML(或XML)文档的API(应用程序编程接口).描绘的一个层次化的节点树,开发人员可以添加.修改和删除页面的某一部分. 二.细说BOM对象 1.window对象 window对象表示浏览器的一个实例,同时也是ECMAScript 规定的 Global 对象.(Global :所

学习javascript总结下来的性能优化的小知识(一)

一直在学习javascript,也有看过<犀利开发Jquery内核详解与实践>,对这本书的评价只有两个字犀利,可能是对javascript理解的还不够透彻异或是自己太笨,更多的是自己不擅于思考懒得思考以至于里面说的一些精髓都没有太深入的理解. 鉴于想让自己有一个提升,进不了一个更加广阔的天地,总得找一个属于自己的居所好好生存,所以平时会有意无意的去积累一些使用jQuerry的常用知识,特别是对于性能要求这一块,总是会想是不是有更好的方式来实现. 下面是我总结的一些小技巧,仅供参考.(我先会说一

「译」如何正确学习JavaScript

原文:How to Learn JavaScript Properly 目录 不要这样学习JavaScript 本课程资源 1-2周(简介,数据类型,表达式和操作符) 3~4周(对象,数组,函数,DOM,jQuery) JavaScript终极编辑器:WebStorm 第一个项目-动态问答应用 5-6周(正则表达式,Window对象,事件,jQuery) 7周,可延长到8周(类,继承,HTML5) 继续提升 一些鼓励的话 上面的课程大纲提供了一个结构化和富有启发性的学习线路,从初学者到有所建树,

[转]如何正确学习JavaScript

原文:How to Learn JavaScript Properly(2014-2-7) 学习时长:6-8周 学习前提:中学水平,无需编程经验 更新(2014-1-7) 在Reddit上创建了一个学习小组 January 2014, “Learn JavaScript” Study Group on Reddit 目录 不要这样学习JavaScript 本课程资源 1-2周(简介,数据类型,表达式和操作符) 3~4周(对象,数组,函数,DOM,jQuery) JavaScript终极编辑器:W

如何轻松快速学习JavaScript 呢?

JS给人那种感觉的原因多半是因为它如下的特点: 1:本身知识很抽象.晦涩难懂,如:闭包.内置对象.DOM. 2:本身内容很多,如函数库,对象库就一大堆. 3:混合多种编程思想. 4:辛苦学习后又看似和实际应用脱节. 通常学了很久的JS基础之后,变量.函数.对象你也都略知一二,但一到公司开发项目的时候,却又难以下手.因为公司在开发实际项目的时候通常都是直接用它的衍生库,比如:jquery,angular,boostrap,等,而这些库又多如牛毛,同时还有自己的难点.让你都不知道该学哪个好,甚至开始

重读《学习JavaScript数据结构与算法-第三版》- 第3章 数组(一)

定场诗 大将生来胆气豪,腰横秋水雁翎刀. 风吹鼍鼓山河动,电闪旌旗日月高. 天上麒麟原有种,穴中蝼蚁岂能逃. 太平待诏归来日,朕与先生解战袍. 此处应该有掌声... 前言 读<学习JavaScript数据结构与算法>- 第3章 数组,本节将为各位小伙伴分享数组的相关知识:概念.创建方式.常见方法以及ES6数组的新功能. 数组 数组是最简单的内存数据结构,用于存储一系列同一种数据类型的值. 注:虽然数组支持存储不同类型的值,但建议遵守最佳实践. 一.数组基础 创建和初始化数组 new Array