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. 【小程序】返回顶部wx.pageScrollTo和scroll-view的对比

    一.wx.pageScrollTo(https://mp.weixin.qq.com/debug/wxadoc/dev/api/scroll.html) 1. 小程序中双击顶部的textbar.会默认 ...

  2. 微信小程序发布一个月,世界并没有什么不同

    从某种意义上说,在张小龙身上,最可怕的事情莫过于微信小程序发布一个月,一开始的大红大紫居然渐归沉寂,曾经的风光无限已无人谈起,世界并没有什么不同. 这真像一场噩梦,一切都可怕地颠倒了.一款微信的战略级 ...

  3. Tomcat、Apache、IIS这三种Web服务器来讲述3种搭建JSP运行环境的方法

    一.相关软件介绍 1. J2SDK:Java2的软件开发工具,是Java应用程序的基础.JSP是基于Java技术的,所以配置JSP环境之前必须要安装J2SDK. 2. Apache服务器:Apache ...

  4. Android横、竖屏幕动态切换(layout-land 和layout-port)

    下面是一个例子程序: 1.首先通过以下语句设置Activity为无标题和全屏模式: // 设置为无标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); ...

  5. oracle lz047中的REGEXP_LIKE(cust_first_name,'[[:digit:]]')) .

    转自http://blog.csdn.net/dream19881003/article/details/6680982 今天在看OCP题库的时候有一道题是考字段约束的,意思是要在表CUSTOMERS ...

  6. C++ 随机数字以及随机数字加字母生成

    #include <time.h>#include <sys/timeb.h>void MainWindow::slot_clicked(){ QString strRand; ...

  7. 软工读书笔记 week 9 ——《构建之法》

    软工读书笔记  week 9                 ——<构建之法> 最近的三周我们正式开始我们的项目.然后我也把<构建之法>中的相关章节再拿出来读了一番.以下是一些 ...

  8. 使用Axure设计中,大型的后台系统原型总结

    使用Axure设计中,大型的后台系统原型总结 2018年4月16日luodonggan 在产品原型设计中,经常会涉及到后台系统原型的设计,如何设计出更规范标准的后台系统原型,是很多产品同行们都会遇到的 ...

  9. 使用 Azure CLI 创建 Linux 虚拟机

    Azure CLI 用于从命令行或脚本创建和管理 Azure 资源. 本指南详细介绍了如何使用 Azure CLI 部署运行 Ubuntu 服务器的虚拟机. 服务器部署以后,将创建 SSH 连接,并且 ...

  10. 创建和修改 ExpressRoute 线路的对等互连

    本文将指导你执行相关步骤,以便使用 Azure 门户和 Resource Manager 部署模型创建和管理 ExpressRoute 线路的路由配置. 配置先决条件 在开始配置之前,请务必查看先决条 ...