1)我为什么要学习JavaScript?

在我立志说要当一名前端开发工程师之后,我做的第一件事情,就是上知乎。去搜“前端开发工程师”这几个字。然后就会发现很多答案中涉及到,一名前端工程师,必须要会的是html+css+javascript。在【怎样长成一个优秀的web前端开发工程师?】这个问题下,有人转了一篇外文博客的译版来回答,其中一段很表述得简单明了,“首先,前端工程师必须掌握HTML、CSS和JavaScript。只懂其中一个或两个还不行,你必须对这三门语言都很熟悉。也不是必须对这三门语言都非常精通,但你至少要能够运用它们完成大多数任务,而且无需频繁地寻求别人的帮助”(Nicholoas C.Zakas 《What makes a good front end engineer?》)。

于是在我把HTML和CSS学习到一定程度,也就是达到“能运用它们完成大多数任务”之后,我决定开始学习JavaScript。因为我意识到,虽然一开始能够用HTML和CSS来编写一个看上去挺不错的静态网页已经让我很有成就感,但是,仅仅只有结构和表现的网页,是远远不够的。javascript负责了web的其中一个层次:行为层。JavaScript在现代网页中所发挥的巨大作用,我就不去谈了,推荐阮一峰老师的js教程,其中一篇很清晰地向我们展示学习JS的重要性http://javascript.ruanyifeng.com/introduction/why.html

2)如果要学习JavaScript,我会怎样开始?

W3school是个很神奇的网站,“你可以找到你所需要的所有的网站建设教程”,我所有的web基础技术几乎都是从这里开始的(也有网易云课堂上面学习的网课)。它的教学模式会给你一种完全可以速成的错觉,对的,的确是错觉。例如当你把关于CSS的教程看完一遍之后,如果你的学习能力很强,你会比较系统地学习到关于CSS基础教程,但是如果仅仅是通过它就想立马做出一个很像样的网页,恐怕是有些难度的。但是我还是非常建议从W3school去开始,你可以从这里每一个浅显易懂的句子、demo中获得学习的自信,获得对一门语言最基础准确的了解。

当浏览过一遍W3school的教程之后,可以尝试去买一两本书来细看,我现在手上有《JavaScript权威指南》和《疯狂HTML5/CSS3/JavaScript讲义》。前面的那本是业内公认的犀牛书,后面那本或许就是速成书了吧(大一时候随意买的)。我认为直接去看一本很厚的权威书的时候,很容易让初入门的学习者丧失信心。所以我的建议还是先从速成书开始看,看到需要深入了解的内容时候,一本权威指南就很有必要了。不过,很多学习能力、理解能力比较好的人,是可以直接去把一本权威指南看通透的,只是对于目前的我而言难度就有些大了。 前天电话面试淘宝前端实习的时候,电话的最后面试官给了我一些建议,其中一点就是建议我认真把犀牛书看透,不仅仅是把书翻一遍,而是扎扎实实去理解书上的每一个知识点,即使目前还没能在具体的项目中用到,也要先去理解和弄通它。

一开始就直接用原生的JS去做项目其实是挺费劲的,尝试去学习jQuery,这是JS的一个库,它极大地简化了JS的编程,用它去开始做一些有意思的小案例是令人非常有成就感的。当能你够用jquery去写出一些看起来挺不错的效果的时候,我认为,也就掌握了如何去学习更后面知识的技能了。

如果回到大二暑假的时候,我是会这样去开始我的JS学习的,但当时的自己并没有那么强烈地意识到学习原生的JS是那么重要,而只是学习了JS的一些基本语法,就迫不及待投入到jquery的学习中,然后又很快就用jQuery写一些看起来还不错的图片轮播,便忽略了对最基础的js的学习,当时的我,连最基本的闭包和原型链都不知道。当我顿悟之后,我便从一个什么都不会的状态开始学习,尽管走了一大段弯路,不过最终还是拐回来了。

对于前端开发工程师而言,扎实的js基础是绝对不可以省去的。作为一个才接触前端不到一年的小渣,我依旧在努力摸索着通往前端的路。望一切真心付出的努力都不会白费。

谈谈我的js学习过程(一)的更多相关文章

  1. 谈谈我的js学习过程(二)——“Hello World!”

    在<谈谈我的js学习过程(一)>中,我简单聊了一下我认为的javascript的学习方法,接下来我们可以尝试来写一个最简单的js代码. "Hello World!"对于 ...

  2. Vue.js学习过程

    打开各大论坛,看到好多Vue.js的话题,可以说现在是非常火的框架,看到一个人这样评论Vue:“Vue.js兼容angular.js和 react.js的优点,并剔除他们的缺点.”因为现在公司不用Vu ...

  3. 谈谈我对 js原型链的理解

    想要学习 “原型链” 必须要认识什么是 “原型” 和 “原型链” 先理解一下普通的继承和原型的区别,下面写一段js代码来帮助理解: var Animal = function(){ // 动物抽象类 ...

  4. JS学习过程中碰到的小问题

    使用循环语句查找通讯录 //Setup var contacts = [ { "firstName": "Akira", "lastName" ...

  5. JS 正则表达式否定匹配(正向前瞻)

    引言:JS 正则表达式是 JS 学习过程中的一大难点,繁杂的匹配模式足以让人头大,不过其复杂性和其学习难度也赋予了它强大的功能.文章从 JS 正则表达式的正向前瞻说起,实现否定匹配的案例.本文适合有一 ...

  6. Html5+js测试题(开发版)

    ------------------------------------------------ 1. 谈谈你对js闭包的理解: 使用闭包主要是为了设计私有的方法和变量.闭包的优点是可以避免全局变量的 ...

  7. Node.js学习(第一章:Node.js安装和模块化理解)

    Node.js安装和简单使用 安装方法 简单的安装方式是直接官网下载,然后本地安装即可.官网地址:nodejs.org Windows系统下,选择和系统版本匹配的.msi后缀的安装文件.Mac OS ...

  8. Node.js学习(第一章:Node.js简介)

    Node.js是什么? Node.js 诞生于 2009 年,由 Joyent 的员工 Ryan Dahl 开发而成, 目前官网最新版本已经更新到 12.0.0版本,最新稳定的是10.15.3.Nod ...

  9. 前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)

    写在前面 参考答案及资源在看云平台发布,如果大家想领取资源以及查看答案,可直接前去购买.一次购买永久可看,文档长期更新!有什么意见与建议欢迎您及时联系作者或留言回复! 文档描述 本文是关注微信小程序的 ...

随机推荐

  1. iphone设置fiddler代理测试

    iPhone上配置fiddler为代理方法: 打开IPhone, 找到你的网络连接,打开HTTP代理,输入Fiddler所在机器的IP地址(比如:192.168.1.104) 以及Fiddler的端口 ...

  2. leetCode题解之判断一个句子中的字符和数字是否构成回文

    1.问题描述 Given a string, determine if it is a palindrome, considering only alphanumeric characters and ...

  3. spring boot(9)-mybatis关联映射

    一对多 查询type表的某一条数据,并且要同时查出所有typeid与之配置的user,最终要得到一个以下类型的Type对象 public class Type { String id; String ...

  4. 在 Azure 中的 Linux 虚拟机上使用 SSL 证书保护 Web 服务器

    若要保护 Web 服务器,可以使用安全套接字层 (SSL) 证书来加密 Web 流量. 这些 SSL 证书可存储在 Azure Key Vault 中,并可安全部署到 Azure 中的 Linux 虚 ...

  5. spring boot 在jdk 1.7下使用 commandLineRunner

    在spring boot 中有一段代码,使用的是java 1.8的语法: @Bean public CommandLineRunner commandLineRunner(ApplicationCon ...

  6. 写markdown用于Github上readme.md文件

    Markdown 文档地址 http://pan.baidu.com/s/1o6nu9To Markdown还有一系列衍生版本,用于扩展Markdown的功能(如表格.脚注.内嵌HTML等等),这些功 ...

  7. [UI] 精美UI界面欣赏[10]

    精美UI界面欣赏[10]

  8. [C++] 用Xcode来写C++程序[4] 函数

    用Xcode来写C++程序[4] 函数 此节包括引用函数,内联函数,防止修改函数入参,函数自身带有默认值. 引用函数:防止复制对象,减少系统开销 内联函数:编译的时候根据具体情形将代码嵌入进去,成不成 ...

  9. Beautifulsoup模块安装之pip命令

    1.在python引用 BeautifulSoup >>>from bs4 import BeautifulSoup 发现没有该模块 2.Linux输入 # pip install ...

  10. Python学习---Python的异步IO[all]

    1.1.1. 前期环境准备和基础知识 安装: pip3 install aiohttp pip3 install grequests pip3 install wheel pip3 install s ...