V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
tumbzzc
V2EX  ›  JavaScript

想学习 JavaScript,有什么经验和坑吗?

  •  
  •   tumbzzc · 2017-01-06 23:35:03 +08:00 · 5340 次点击
    这是一个创建于 2659 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Python 学了快两年,想学学 JavaScript ,不知道大家有没有什么坑和经验可以指教指教~

    45 条回复    2017-01-22 01:05:31 +08:00
    dantegg
        1
    dantegg  
       2017-01-06 23:37:43 +08:00   ❤️ 1
    bzw875
        2
    bzw875  
       2017-01-06 23:48:49 +08:00
    不带这么吓人的,看完《 javascript 高级程序设计》吧
    murmur
        3
    murmur  
       2017-01-06 23:51:50 +08:00
    整个前端都是个大坑 你学了 1 年明年全给你推翻了
    liuchao1986105
        4
    liuchao1986105  
       2017-01-07 00:11:59 +08:00
    http://www.lambda-study.com/topics/583159699c514011425c842b 整理的一些 js 的视频教程和书籍,看是否对你有用
    sensui7
        5
    sensui7  
       2017-01-07 00:18:45 +08:00
    你先决定是否写分号,
    misaka19000
        6
    misaka19000  
       2017-01-07 00:25:53 +08:00
    @sensui7 必须不带分号 XD
    nfroot
        7
    nfroot  
       2017-01-07 00:56:11 +08:00
    @sensui7
    @misaka19000
    早期写 asp 不准写分号
    后来写 php 必须写分号
    后来写 js 随便你写不写:)
    tumbzzc
        8
    tumbzzc  
    OP
       2017-01-07 01:05:56 +08:00
    不写分号!
    zsx
        9
    zsx  
       2017-01-07 01:26:40 +08:00
    @nfroot 其实 ASP 用 JScript 也是随便写不写的……
    nfroot
        10
    nfroot  
       2017-01-07 01:52:02 +08:00
    @zsx 写 js 还是用 node.js 吧 虽然那时候没有…… ASP 默认当然是 VBS 了……但是那时候也有懂 JS 的直接用 JScript ,不过也有可能不少优势(没学过) 最显而易见的问题就是时区…… 真是羡慕嫉妒恨啊。
    scnace
        11
    scnace  
       2017-01-07 02:30:10 +08:00 via Android
    之前听我司某前端说 js 要写分号 不然压缩的时候会出现乱七八槽 不可预知的错误诶… (Gopher 表示写 Js 的时候经常还是会忘 233 ) 最近在看 vue 结合着 gopher-vue 看感觉倒好理解了 233
    ericls
        12
    ericls  
       2017-01-07 05:52:36 +08:00
    楼上那些说分号问题的。。。。

    你们项目不包含 .eslintrc 之类的文件吗
    kimown
        13
    kimown  
       2017-01-07 06:15:38 +08:00 via Android
    统一 airbnb eslint 或 standard 规范
    srlp
        14
    srlp  
       2017-01-07 07:36:35 +08:00 via iPhone   ❤️ 3
    就 js 这门语言本身,看 mozilla 的介绍就够了。

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide

    学的过程你也许会有类似 python 的即时感,没错它们的新版特性应该有互相借鉴。上述过程坑的,是 js 的一些黑暗属性,那是类似 c++ 坑的历史遗留问题,尽量按照最佳规范避开或者写最新标准的代码就好了。

    坑无穷多的其实是前端开发。学会 js 本身没啥用,主流的用途当然是配合前端开发。当然了纯后端 nodejs 环境也不是不可以,那就成了和 py web 开发没啥区别了。

    接下来学的前端开发路径可以是:知道 nodejs 和浏览器 js 的差别和应用场景,了解前端的各种概念比如说 dom 和 ajax 和 promise 等(其实就是各种 api 和设计模式),然后就是搭建前端开发全家桶比如说 node+babel+webpack (一堆很复杂的东西,类似 c++ 环境的编译器 makefile 等等,没错写最新版 js 需要编译器把它编译成旧版的),然后是选择一些前端框架来学比如说 react vue angular (强烈不推荐 angular 作为入门, react vue 的上手曲线比较平缓)。

    既然前端开发,陆陆续续肯定会顺手把 html css 学了。 css 也是一个大坑,只兼容新浏览器的话可以考虑全用 flexbox 实行布局。不想纠结这方面的话请用 bootstrap 框架。

    个人吐槽一下,前端开发与其说繁荣不如说混乱。现在像是三国混战,也许过几年就好了。入坑需谨慎啊。
    ╮(╯▽╰)╭
    chemzqm
        15
    chemzqm  
       2017-01-07 07:39:42 +08:00
    beidouxun
        16
    beidouxun  
       2017-01-07 08:54:42 +08:00 via Android
    你让我写。我会个皮毛。你让我改!我连自己都不相信我竟然会那么多!
    ruooooooli
        17
    ruooooooli  
       2017-01-07 09:27:38 +08:00
    我还是习惯写分号的
    k9982874
        18
    k9982874  
       2017-01-07 09:39:51 +08:00 via iPhone
    先只精通 js 和 css ,其他什么 typesctipt coffee less sass 什么的都别管
    finely
        19
    finely  
       2017-01-07 09:48:15 +08:00 via Android
    别上来就学框架,不然你会哭的。前端框架和工具一年一变,先打好坚实的基础,再用框架。
    tumbzzc
        20
    tumbzzc  
    OP
       2017-01-07 09:50:07 +08:00
    @k9982874 你说什么?后面的名词都没听过 /笑 cry

    @finely 我连基础都不会~
    heraldboy
        21
    heraldboy  
       2017-01-07 10:06:08 +08:00
    你不像已经学过几年语言的程序员,重要的是开始用,不要把学语言当成备单词。
    tumbzzc
        22
    tumbzzc  
    OP
       2017-01-07 10:10:32 +08:00 via Android
    @heraldboy 我本来就不是程序猿
    itkdqwzero
        23
    itkdqwzero  
       2017-01-07 10:53:15 +08:00   ❤️ 1
    前端:
    语言基础打好就可以学框架了, jQuery 不算什么框架, 不过是高兼容性的类库. 原生的 querySelector 及 DOM 操作要会点
    基础方面, 你要知道字符串, 数组, 及数字的各种操作, 要知道什么情况下,reduce 的速度比其它遍历方式快.
    instance 继承判断与原型链要会, 难的是读别人的插件, 更难的是做插件.
    js 的设计模式可以看看
    itkdqwzero
        24
    itkdqwzero  
       2017-01-07 10:58:16 +08:00
    遇到 coffeeScript 编译出来的的真是无语, 很多东西用各种技术进行编译,打包, 有时 github 上的插件要求打包环境. 单单安装环境就烦死你
    jianzhiyao020
        25
    jianzhiyao020  
       2017-01-07 11:20:42 +08:00
    fzhw88
        26
    fzhw88  
       2017-01-07 11:32:59 +08:00
    js 还是挺好学的,框架那是另一回事。
    fzhw88
        27
    fzhw88  
       2017-01-07 11:35:20 +08:00
    发现楼上居然有说分号的,你们学一门语言,最基本的规范都不遵守?写个分号这么好的习惯又不花力气还能省很多麻烦,这都要省掉我是不能理解的。。。
    maysixteenth
        28
    maysixteenth  
       2017-01-07 11:59:04 +08:00
    https://segmentfault.com/a/1190000004652898?_ea=680358
    之前在 sf 上看到的,相互学习
    xwartz
        29
    xwartz  
       2017-01-07 12:08:20 +08:00 via iPhone
    @fzhw88 不见得写分号是好习惯啊…
    fzhw88
        30
    fzhw88  
       2017-01-07 12:29:47 +08:00
    @xwartz 额,那还真不知道有啥坏处,请教一下?
    GreatMartial
        31
    GreatMartial  
       2017-01-07 12:44:03 +08:00 via Android
    你不是玩 Python 吗?为啥又要学前端...
    感觉还不如找门主力语言再往下深入学。
    Python 现在好玩的东西很多,比如深度学习😂
    xwartz
        32
    xwartz  
       2017-01-07 12:46:31 +08:00 via iPhone
    @fzhw88 知乎上有讨论该不该写分号, https://www.zhihu.com/question/20298345/answer/14670020
    fzhw88
        33
    fzhw88  
       2017-01-07 13:42:35 +08:00
    @xwartz 看了一下,这个还是假设: 1 ,人会忘记写分号, 2 ,人会不遵守 js 的规则在每个语句后都写分号,但是如果一开始就养成了好习惯,我觉得完全不存在这些问题。我只能说正确的写分号在多数情况下都有利于代码的理解,当然分行也基本能做到这一定,代码压缩借助好的工具肯定也能解决,说到底还是看个人习惯吧。 js 有明确的规则什么时候能省略分号,什么时候不能,只要遵循规则就行,非要说我都不写分号,全靠工具来加,我觉得这实际上是不理解基本的语句规则,那哪天没有工具,只是需要在控制台测试一段代码,都不知道哪些分号不能省那不是只能抓瞎了……
    fzhw88
        34
    fzhw88  
       2017-01-07 13:44:56 +08:00
    总结一下就是 js 的分号本来就是可选的,而且有明确的规则,至于你写不写,本来就是你的自由,只要别搞错了就行,而且个人认为这个规则算是很简单的了。
    Swift3030
        35
    Swift3030  
       2017-01-07 13:56:07 +08:00
    自己作死,学什么 JS
    lnkn
        36
    lnkn  
       2017-01-07 13:56:18 +08:00
    看标题的时候我第一想法是:
    想去学学 Python 吧,看了贴才知道...
    viosey
        37
    viosey  
       2017-01-07 14:01:04 +08:00
    根据框架再决定写不写分号咯,比如 vuejs 我就不写
    an168bang521
        38
    an168bang521  
       2017-01-07 14:55:05 +08:00
    先学原生 JS ,在学 jQuery ,然后再框架;这样不会被坑;
    如果上来就学框架,会发现所有框架都会坑你!
    dreamingincode
        39
    dreamingincode  
       2017-01-07 15:24:56 +08:00
    1. 别用 == 用 ===
    2. 别用 for...in 用 for...of
    3. "use strict";
    heraldboy
        40
    heraldboy  
       2017-01-07 16:15:29 +08:00
    @tumbzzc 我也不是,但这多年没少写了,工作需要,所以给你的建议就是一定要用起来,不用考虑那么多,现在是坑,可能以后就不是了,对别人是经验到你这可能是呵呵。
    Maxbee
        41
    Maxbee  
       2017-01-07 16:19:21 +08:00 via iPhone
    @dantegg 吓尿了😂
    mazyi
        42
    mazyi  
       2017-01-07 22:15:39 +08:00
    把 js 看成一门语言,不要看成前端。
    mingyun
        43
    mingyun  
       2017-01-07 23:31:08 +08:00
    js 学好不容易,现在更新太快了
    aleen42
        44
    aleen42  
       2017-01-08 11:35:22 +08:00 via Android   ❤️ 1
    我覺得最好還是打好基礎,從犀牛書看到高性能 JavaScript ,以及數據結構及其部分算法。切記不要浮
    poke707
        45
    poke707  
       2017-01-22 01:05:31 +08:00 via Android
    请问今时今日要打语言基础的话,看 <You Dont Know JavaScript >会不会比犀牛书更好呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3482 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:38 · PVG 18:38 · LAX 03:38 · JFK 06:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.