JavaScript入门第一部分:JavaScript是什么,能做什么,不适合做什么,用什么开发以,怎么玩浏览器,怎么学这东西。

转自:http://saharabear.com/weblog/?p=265


前一阵子推荐的《JavaScript权威指南》依然是一本好书,但是现在我把它锁起来了,因为它是一本好的参考书,是每一个JavaScript的爱好者都可以备上一本的书,但是如果把教程写成这本书的模式,那就是“中国教育”了,因为写教程的目的并不是授人以鱼,毕竟写得好的语法参考文章一抓一大把,为什么还要再发明轮子。

就想把这一系列的东西写出来,初学者随便找一本语言参考手册,或者买一本《JavaScript权威指南》,然后跟着这一系列的文章,就能有一点安身立命的本钱。当然这是说大话了,主要的意思是:能让初学者知道怎么学习东西。

老规矩,我抛一块破砖,大家来出几个玉石,欢迎指正。

JavaScript是什么

JavaScript是一门语言,和所有编程语言一样,能够有if, else, for, while,还有函数(方法),当然也可以自己定义函数(方法)。

这门语言大多是用在Web上。那什么叫Web上?可以这么描述:JavaScript语言主要是用在网页中,用于操作网页里面的一切,比如改变网页里面的数据,比如把网页里面的用户操作(点击,拖动等等)都告诉服务器,再比如根据网页外面的浏览器的大小,动态改变网页的宽度或者样式(当然这和CSS的功能有交集,JavaScript主要是处理动态的东西,比如动态改变CSS)

当然,前面都说了,这是一门语言,并不只是浏览器语言,在浏览器里面有一种叫做JavaScript引擎的东西,用于解析JavaScript语言。这里多提一句,JavaScript不是编译型语言,是解释型语言,不过在编译与解释也可以部分融合的今天,强调这一点并没有太多意义。那么,自然而然,如果把这个浏览器里面的js引擎拿出来,不就可以让JavaScript不再运行在浏览器里面了?OK,那自然是没问题,不过大多数JavaScript都还是运行在浏览器里面,只有很少的程序,比如Node.js(一种动态网站开发技术)是把JavaScript运行在外部的(这里会有一堆的名词,比如nginx, mongodb, nosql, redis, http,太无聊了,说不定提到异步还要和别人解释异步不只是Ajax,Ajax也不只是异步,所以就不提这里了)

所以,JavaScript就是一门编程语言,不算太通用,主要用在Web上。

JavaScript能做什么

JavaScript能做的事情主要有两方面:

1.Web页面

在Web页面上,目前主要有三种元素:HTML, CSS, JavaScript。HTML类似于结构,你可以用HTML定义一些结构,包括header, footer, sidebar或者类似的,就像你在网页中看到的不同的“块”(仅是视觉上的块,并不是块级元素)。而CSS则用于定义样式和布局,比如字体,字号,“块”的大小,位置。那么JavaScript在做什么呢?

JavaScript做动态的东西。

动态的东西包括但不限于:表单提交,样式改变,用户操作监控与响应,比如用户点击后处理某些事情,还有就是自动化一些事情,比如在网页完全加载完成后,自动发送一些数据或者从服务器端获取一些数据并展示在页面上。

2.Web服务器端

有了Node.js,人们才会想到把JavaScript用在服务器端,或者说人们想到把JavaScript放到服务器端,才有了Node.js。听说trello就是用的Node.js,配合Socket.io实现更高效的通信。

一说服务器端,大多会想到大数据处理,并发,线程,进程或者其他的概念。在这里明确一下,Node.js适合做的是服务器端前端的响应,比如用户请求来了,推一条数据回去,或者用户数据来了,记录一些东西。如果你希望收集一些用户的数据,然后在后面做分析,那么这一类的工作,最好不要让Node.js,或者不要让JavaScript来做。

JavaScript不适合做什么

既然刚才说了JavaScript适合做什么,那反面就是JavaScript不适合做的,比如:网页特效,在网页中显示一个飘来飘去的聝东聝西(别查这个词,是我发明的,意思是:乱七八糟的被社会抛弃的狗屁东西),再比如让JavaScript来修改用户本地的文件,又或者做一些被禁止的网络操作。

在服务器端,很多人说JavaScript的“快”只不过是假像,比不过C++,Java,其实这里的重要概念是异步的“快”和同步的”快“。因为纯异步的东西,让用户感觉起来快,但并不一定是执行1M(感谢@livid告诉我什么是M,我一直以为是1024)的循环的快。所以说,只要别把JavaScript用于需要大量CPU操作的长时间计算或者长久的进程处理,只是用它来做前端或者对数据库(也许是nosql)的异步操作,它的快才能体现出来。

自然,trello这种大量前端的响应如果全部用同步来做,肯定会慢得要死。

用什么开发JavaScript

记得我接触t2t的时候,就非常纠结我怎么保存文件,以什么名字作结尾。虽然后来知道了根本不需要关注后缀,但前期还是花了不少时间做一些浪费精力的工作去搜索。

开发JavaScript有很多种办法,比如webstorm, editplus, vim, emacs,  firebug甚至说记事本,都可以,不过对于咱们教程里面做一些例子,还是希望直接能看到效果。所以,强烈推荐使用Firebug来开发JavaScript,因为这个东西足够稳定,无论是Windows还是Linux下面,并且功能强大,未来做前端,包括HTML,CSS,它都是神器。

具体怎么玩呢?安装Firefox你肯定会吧,别用Baidu去搜索了,直接用这个地址吧:

这样下载到的是纯净版的,没事就别安装什么插件版的,用纯净版的,纯洁,干净。
然后安装Firebug,直接用Google或者用Firefox的插件管理器,搜索,点安装,重启Firefox就搞定。
怎么玩呢?随便找个网页,按<F12>,打开Firebug,看下面的图,那段”hello javascript world!”就是firebug的JavaScript编辑区。
在Console这个Tab边上的小箭头上,选中Command Editor就可以打开这个编辑区了,下面的Run就是运行区,试着打上图中的代码,就可以点击run运行了。
别问我语法提示,别问我代码高亮,这是教程,才刚开始,别还没学会和女孩子说话就想先上床。

怎么玩浏览器

曾经,有一个古老的传说,某人,要做浏览器,全世界异口同声:在中国,他们一定是IE6内核。

后来,有一个新奇的传说,某人,要做浏览器,全世界异口同声:在中国,他们一定是叫做双核。

最后,有一个神奇的传说,某人,要做浏览器,全世界异口同声:在中国,他的一定也用Webkit。

.

.

.

突然:我看到了一个传说:他妈的360还是用的IE6内核,特别是在Windows XP上。

周鸿祎你做互联网的确有一手,值得佩服,但是你妈的还用IE6,我,,你,我,,,你,,你瞬间就上升到方院士的高度了!

Shit.

那学习JavaScript怎么能不学习浏览器?这样吧,无论你用的哪个操作系统:Windows, Linux,先把下面几个装上。

  • Mozilla Firefox
  • Google Chrome
  • Opera
  • IE9(至少也要是IE8吧,不然你都不好意思给版本帝打招呼)
  • 搜狗(不管怎么说,咱们至少先看看,没有Linux版,那就先不管)
  • Opera Mobile Emulator (这个,没意见吧)
然后呢,每天都用。比如用opera浏览网页,用chrome使用一些2.0应用,比如gmail, google calendar, google doc, 用firefox做JavaScript开发,再用IE9打打酱油,还有就是没事看看Opera Mobile Emulator,然后习惯性地用手碰碰屏幕,最后内存被浏览器全部占满,精尽而亡。

怎么学习JavaScript

学习JavaScript,其实就是四部曲:

  1. 找好参考资料
  2. 常备参考文档
  3. 关注博客更新
  4. 写JavaScript
第一条:找好参考资料
曾经在del.icio.us上面搞了一堆的链接地址,最后都放弃了,最终发现对于JavaScript,根本不需要太多的文档,也不需要太多的资料,主要关注两个网站就可以了:
看不懂英语?没好好学过?Shit,孩子你还没生过呢,最后不照样生出来?去看。
第二条:常备参考文档
我就是备一本 《JavaScript权威指南》,如果大家感觉这本不适合自己(我感觉它适合所有JavaScript开发人员当参考),可以去V2EX问一问其他有没有合适的,虽然它现在是小众社区,但水还是挺深的。Douban虽然书不少,但书评慢慢都不值得相信了(调侃一句,在Douban看书评,还不如去约炮更实在(纯调侃,没有对Douban的恶意))
第三条:关注博客更新
有一些不错的JavaScript相关的博客,随时关注这些博客的更新。具体关注哪些呢?我就不去找GR了,麻烦。
第四条:写JavaScript
这是最重要的一条吧,只要你去写,JavaScript可以做很多事,比如保存你喜欢的相册里面的所有图片,再比如自动点击一些按钮等等等等,反正有很多好玩的东西可以做。

后话:

写东西,从不打草稿,想到啥就写啥,简单做个规划就开始,写得不好也不要骂,这一章写了太多调侃的东西,下面再写就努力写一点代码。

另外,如果你不喜欢Firebug可以试试Opera或者Chrome自带的开发工具,听说一样强大,我就不用写了,因为如果你能自己找开发工具,一定不需要我告诉你怎么用它写JavaScript.


  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值