首頁  >  問答  >  主體

学习node.js是否需要先学习Javascript?

最近和朋友要做一个项目,本来打算用java来做,但感觉学习曲线太大,所以决定采用node.js,想问一下学习node.js是否需要先学习Javascript?然后求推荐点入门书籍或资料。

大家讲道理大家讲道理2749 天前2296

全部回覆(24)我來回復

  • 黄舟

    黄舟2017-04-10 14:29:38

    我在只会写alert("hello world!")时,开始了写nodejs,nodejs入门并不难.
    照着一些案例代码写,开始可能很不习惯异步的写法,于是就使用async库.
    传统数据库设计不够简介,于是就使用levelup.
    当然javascript的特性不了解难免会
    采坑,边采边写吧,理解和记忆都会很深刻.
    比如在异步里不小心用了全局变量,就使用变量时少写了var,就悲剧了.

    回覆
    0
  • 黄舟

    黄舟2017-04-10 14:29:38

    Javascript编程精粹
    Node.js编程指南

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-10 14:29:38

    以我个人的经历来看,不需要。

    前端的 JavaScript 教程很多时候有很多奇怪的关注点,比如说 undefined 与 null 有哪些区别啊,为什么 == 不如 === 啊(我观察了一下,我写的所有小 Node.js 项目这两者毫无区别),或者莫名其妙的东西相加起来的和是什么。相反,我在 Node 里遇到的几乎所有对象都是……我也不知道叫啥了,对应 C 的 POD?

    而且现在后端用 Traceur 那么方便,transpile 一下 ES6 就可以上了,都不需要看原型链就能写 class,多好。

    需要注意的几个点大概有:

    • 异步概念本身,数据真的只能在回调函数里用啊。这个看似很好理解,但是要形成直觉要不少时间。
    • 对必包理解的要好。看看 SICP,做做 2.2.4 那章节,或者用 JavaScript 写个 parser combinator?我没写成就是了……
    • 知道 this 的实现方法:func.call(thisPtr, ...),这样你给对象写异步函数就不会死了。
    • 熟悉一下 ES6 的 Generator,如何用它解决 callback-hell。我现在想通了,千万不要看什么教程,你直接对着 Generator 撸,搞懂了基本的语法自己去构造解法。提示:generator 是可以通过 yield 暂停的。检验搞没搞懂的方法?suspend.js v0.5.0 有个 bug,题主能看出来对 Node 这坨乱七八糟的东西就有个大概的了解了……

    那个 bug 真坑爹啊……

    回覆
    0
  • 高洛峰

    高洛峰2017-04-10 14:29:38

    需要学前面的ECMAScript。看完之后,后面的dom和bom就不用看了,直接看node的官方api文档就好。

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-10 14:29:38

    是这样:
    学javascript,
    不要学DOM

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-10 14:29:38

    可以使用typescript,或者coffeescript,来开发nodejs,适合之前写 类 形式语言(java)的同学,能很快上手。

    回覆
    0
  • 迷茫

    迷茫2017-04-10 14:29:38

    可以先把javascript的基础语法看了,因为node.js是构建在javascript基础之上的,盖房子不能没有砖吧~

    然后可以看看现成的一些demo,熟悉一下,找找感觉。

    说是找找感觉,其实是让你适应node.js的异步编程模式,等你这个适应了,那node.js上手的速度就快的飞起。

    回覆
    0
  • 黄舟

    黄舟2017-04-10 14:29:38

    学写文章之前是否需要先学认字?

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-10 14:29:38

    当时是有javascript基础最好了,给你个小项目的源码照着做做;
    https://github.com/hubwiz/example-node

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-10 14:29:38

    要学js,但是浏览器内的js可以不学

    回覆
    0
  • 取消回覆