目前在自学Javascript,感觉非常的吃力,是不是我的方法不对? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
83f420984
V2EX    程序员

目前在自学Javascript,感觉非常的吃力,是不是我的方法不对?

  •  
  •   83f420984 2014-01-22 12:03:02 +08:00 24398 次点击
    这是一个创建于 4283 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我自己的学习方法是,看Javascript DOM编程艺术,第一章节我研究了近3个星期,始终不明白它里面的讲的对象与数组与代码表示的意思,然后实现是看不下去了;

    转而去看妙味课堂Javascript视频教程,里面前5节就是JS学前预热课程,这5节课程重复看了10遍以上,不停地练习视频里的例子,自己已经可以写点简单的JS效果了;

    然后重新去看Javascript DOM编程艺术,感觉很容易上手,没有刚刚开始看时的迷惑

    现在的问题是,我还是不明白什么是对象,什么是数组,什么是闭包,怎么隐藏全局变量,等
    第 1 条附言    2014-01-22 13:40:24 +08:00
    看了几个老兄都在说要有目标的学习,这样才能学好,谢谢
    77 条回复    1970-01-01 08:00:00 +08:00
    66beta
        1
    66beta  
       2014-01-22 12:08:03 +08:00   1
    不如先学下python或者PHP吧,比较简单,好上手,成就感来得快
    话说,从初级向中级进步路上,我觉得JS比上面2者难得多
    chemzqm
        2
    chemzqm  
       2014-01-22 12:09:50 +08:00
    犀牛书 Javascript the good part
    83f420984
        3
    83f420984  
    OP
       2014-01-22 12:12:12 +08:00   1
    @chemzqm 犀牛书比Javascript DOM编程艺术更加难啃,我看了3页就放弃了,直接看Javascript DOM编程艺术+视频
    srdrm
        4
    srdrm  
       2014-01-22 12:13:38 +08:00
    你要是编程零基础就别看什么编程艺术了,找个傻瓜书啥的
    turing
        5
    turing  
       2014-01-22 12:14:07 +08:00   1
    我觉得反复看蝴蝶书就好了。写代码主要在写。读书可以大略地读,快速看完,不懂也没有关系,看完之后根据自己仅有的知识和理解去写,一遍遍试错的过程中就能真正地理解编程语言了。
    serenader
        6
    serenader  
       2014-01-22 12:21:59 +08:00   4
    目前我也在学 Javascript ,前期我也是先看 Javascript DOM 编程艺术,在练习完里面的那个图片库案例之后我就开始看 Javascript 高级程序设计了。

    Javascript DOM 编程艺术相对来说还是比较好理解的吧?我个人觉得里面的例子我自己都可以理解。只不过 DOM 编程艺术里面并没有详细地教你 Javascript 最基础的东西。我个人感觉只是纯粹在讲关于 DOM 这方面的内容。

    而 Javascript的 基础知识个人认为在 Javascript DOM 编程艺术里面学不到的。

    基础知识还是看Javascript高级程序设计 或者Javascript权威指南。学完整本书的内容应该能够掌握大部分知识了吧,我觉得。因为自己还在学习当中,不好下结论。

    另外上次有人在 V2EX 上发了个 如何正确学习 Javascript 的链接, 我顺便贴上来吧。
    http://Javascriptissexy.com/how-to-learn-Javascript-properly/

    里面的内容是围绕 Javascript 高级程序设计 和 Javascript 权威指南写的,如果还没有这两本书最好去买本吧。

    共勉。


    @66beta 搭车请教一下, Python 和 PHP 真的比 Javascript 简单吗?对于入门来说。我本来自己打算先学好 Javascript 和基础的 HTML 和 CSS 再去系统学习 PHP 或者其他后端语言。如果说 Python 和 PHP 真的比较容易入门,那么有什么好方法入门呢?
    seiwev
        7
    seiwev  
       2014-01-22 12:23:14 +08:00
    你不明白说明你没有基础,先看一些基础的书吧。可以翻翻Code Complete里面讲数组、对象。
    83f420984
        8
    83f420984  
    OP
       2014-01-22 12:34:00 +08:00
    @serenader 老兄讲的非常符合我现在的情况,主要还是问题是基础差了,谢谢
    bakac
        9
    bakac  
       2014-01-22 12:34:56 +08:00
    要有目标(例如必须要在短期解决的问题)才会有动力, 然后边看边实践.
    thinkif
        10
    thinkif  
       2014-01-22 12:37:04 +08:00
    先找本书或者网络教程学习一下基础语法之类的

    看书的时候不容易理解也没关系, 看过去, 有了后面的知识回头再去研究前面不明白的地方就豁然开朗了
    kzy9007
        11
    kzy9007  
       2014-01-22 12:40:06 +08:00
    我也想学 买了一本书研究中~~
    FrankFang128
        12
    FrankFang128  
       2014-01-22 12:42:28 +08:00 via Android
    因为你没有了解过内存层面的东西,所以对数组没有具体的认识。
    但是,记住它的特点就好,用久了就知道了。
    lemonlwz
        13
    lemonlwz  
       2014-01-22 12:42:46 +08:00
    一本语言精萃足已
    FrankFang128
        14
    FrankFang128  
       2014-01-22 12:43:00 +08:00 via Android
    有一种学习方式叫Bug驱动学习
    guchengf
        15
    guchengf  
       2014-01-22 12:43:37 +08:00   1
    语言精粹用来自学不是什么好选择。。。
    FrankFang128
        16
    FrankFang128  
       2014-01-22 12:44:59 +08:00 via Android
    @lemonlwz 怎么可能足矣,人家没有其他语言基础,连数组是什么都没理解
    donwa
        17
    donwa  
       2014-01-22 12:46:18 +08:00 via iPhone
    先玩jquery吧。玩熟了再研究Javascript。
    jquery很容易上手。
    sanddudu
        18
    sanddudu  
       2014-01-22 12:49:31 +08:00
    你学习的姿势不对
    luoyou1014
        19
    luoyou1014  
       2014-01-22 13:03:59 +08:00
    别听那些说要学别的语言的, 光装环境就烦死人.

    学习要有一个目标才能学好, 没有目标跟容易在原地踏步, 所以先给自己定个目标, 比如幻灯片等等

    至于对象, 闭包什么的, 那些都是概念, 不理解也不要紧, 会用即可, 用多了自然就会了.

    同样推荐从jquery入门, 你有了基础, 看jquery会更方便, 推荐过一遍w3school上面的教程.

    PS: 生活中喜欢学习的真难找啊, 网上到是有很多.....
    sunus
        20
    sunus  
       2014-01-22 13:09:25 +08:00
    别死看书(除非是要考试),想想有啥想做的小玩意,努力做出来。然后再回过头来看书。

    现在不是很多想 http://www.codecademy.com/ 这样在线学习的网站,可以看看
    edward1992
        21
    edward1992  
       2014-01-22 13:11:34 +08:00
    别怕,学Javascript是有用的,web现在呈现一个js大一统的趋势,学Javascript大方向上错不了。

    但是Javascript是一门设计很不完善的语言,很多琐碎的语法细节会让你花掉很多时间。

    建议还是结合到具体项目来学习。我说的项目不用很大,比如自己打个博客什么的就够了。
    tonitech
        22
    tonitech  
       2014-01-22 13:19:18 +08:00
    你以前学过其他的语言吗?
    learnshare
        23
    learnshare  
       2014-01-22 13:28:38 +08:00
    @donwa
    @luoyou1014
    我推荐先学 jQuery,比原生 API 容易上手。

    其实入门的第一步是 w3school(去操作一下里边的演示,然后随便修改、运行一下),然后是一本详细的书(比如 JS 权威指南 6),下一步是学习高级用法(面向对象、设计模式什么的),最后是应用(随时参考 MDN、webplatform 的文档)
    83f420984
        24
    83f420984  
    OP
       2014-01-22 13:33:54 +08:00
    @learnshare 没有学的其它的语言
    84840
        25
    84840  
       2014-01-22 13:40:48 +08:00
    TankyWoo
        26
    TankyWoo  
       2014-01-22 13:42:20 +08:00
    现在一般都是事件驱动式学习。
    83f420984
        27
    83f420984  
    OP
       2014-01-22 13:42:53 +08:00
    83f420984
        28
    83f420984  
    OP
       2014-01-22 13:43:41 +08:00
    @TankyWoo 事件驱动式学习是如何学习?
    TankyWoo
        29
    TankyWoo  
       2014-01-22 13:50:36 +08:00
    @83f420984 就是有需求、有任务,然后针对这个任务,去学习。

    也可以理解为“目标”
    84840
        30
    84840  
       2014-01-22 13:52:18 +08:00
    常用的算法Javascript版参考这里http://www.nowamagic.net/librarys/veda/detail/167
    ianva
        31
    ianva  
       2014-01-22 13:54:43 +08:00
    1. Javascript DOM编程艺术 这本书最好的地方在于你不需要关心Javascript是什么就能做出一些效果来,让新手有兴趣玩下去
    2. Javascript 是一门语言,dom 不是Javascript的一部分 dom 是 Document object model 就是浏览器提供的用来操作文档的一种办法,但它本身是低级或中级的api,也就说面向的应用方式相对底层,所以用起来很不方便,不同的浏览器实现也有差异,所以用一些dom 库会更好,如jquery,要分清楚什么是语言,什么是平台提供的api。
    3. 因为大部分时候Javascript面对的平台是浏览器(node.js是另一个方向),所以可以通过实现一些浏览器上的小功能去学习,jquery是个易用的东西,他能帮助很容易你将学习到的Javascript的语言特性呈现出来。
    4. 现在这个阶段了解原生的dom接口意义并不大,因为像jquery,mootools,yui这些库已经把dom能做到的99%的事情都实现了,能用更方便的接口为什么要用原生呢,用原生本身就是对项目的不负责,因为跨浏览器本身会遇到的问题比你想想的要多太多了,如果看过一些库源码相信可以了解到,不但会降低项目的稳定性,还会带来各种维护性问题。

    推荐的书目:
    1. Javascript 权威指南(David Flanagan)
    2. Javascript高级程序设计(Nicholas C. Zakas)
    3. Javascript 语言精粹(Douglas Crockford)
    4. Javascript设计模式(Addy Osmani)
    coolicer
        32
    coolicer  
       2014-01-22 13:54:49 +08:00
    成长是有个过程的。我当时也经常在问自己,虽然现在JS很久没写,感觉也差不多。懂了语法,剩下的只有算法要靠自己想了。
    84840
        33
    84840  
       2014-01-22 13:54:57 +08:00
    同意“就是有需求、有任务,然后针对这个任务,去学习。”
    @TankyWoo @83f420984

    这个方法比较好。

    在有Javascript基础的前提下,找一个具体的代码去读,去练习。
    我的VBSript就是这么学习的
    learnshare
        34
    learnshare  
       2014-01-22 13:57:38 +08:00
    @83f420984 JS 不太需要其他语言的基础就可以学习的
    Mutoo
        35
    Mutoo  
       2014-01-22 14:11:35 +08:00
    "现在的问题是,我还是不明白什么是对象,什么是数组,什么是闭包,怎么隐藏全局变量,等"

    这些程序概念的出现都是为了解决特定问题的,显然你没有遇到,或者还没正视这些问题。

    刚开始编程的时候,你肯定会用大量的变量,x y z x0 x1 x2 ... 越来越多,多到你都不知道要怎么给它们起名字,(除非你还在写很小的程序),数组就是为了帮你分组一些数据用的。

    somethings = [...]

    你再也不用去给里面的东西起名字了,而可以通过索引来引用它们 somethings[0] somethings[1] somethings[2] ...

    然后你会学到循环,连索引都不用自己打了,用循环变量来统领它们。

    for(i=0;i<len;i++) doSomething(somethings[i]);

    然后你会接触到越来越强大的指令,编程的过程就是循序渐进的。

    对象可以让你以更宏观的角度去解决问题。

    闭包可以让你区分或隐藏数据(不要问我为什么要隐藏)。

    不过我还是不理解你为什么会吃力……有人逼你一个星期要学完吗?
    83f420984
        36
    83f420984  
    OP
       2014-01-22 14:26:14 +08:00
    @Mutoo 讲的太好了,用很直白的语言说明了JS的对象,数组等起的作用;
    吃力是因为学一个知识点,需要很长时间的理解和不断的练习才明白它要作用和用法
    Mutoo
        37
    Mutoo  
       2014-01-22 14:31:08 +08:00   1
    @83f420984 多动手,多看书,耐心。一个概念没看懂,就换几本书看,不同的书会从不同的侧面来解释同样的事物。当你看懂了,再回过头就很容易了。

    “然后重新去看Javascript DOM编程艺术,感觉很容易上手,没有刚刚开始看时的迷惑”

    这就是一个很好的开始。
    hkongm
        38
    hkongm  
       2014-01-22 14:53:30 +08:00
    Javascript高级程序设计(Nicholas C. Zakas)
    itfanr
        39
    itfanr  
       2014-01-22 14:56:49 +08:00
    @turing 嗯 你是过来人 哈哈
    raincious
        40
    raincious  
       2014-01-22 14:58:40 +08:00
    @Mutoo

    &t;> 你再也不用去给里面的东西起名字了,而可以通过索引来引用它们 somethings[0] somethings[1] somethings[2] ...

    Bad practice.

    建议一定要节省变量或者有一定洁癖的话,用Object搞定。

    var setting = { url: '', type: '' };

    这样比 var url = '', type = '';简洁。

    但是不给变量起名字,相当于 var a=0, b=0, c=0;,很明显不符合规范。
    Mutoo
        41
    Mutoo  
       2014-01-22 15:09:23 +08:00
    @raincious

    风格习惯是一回事,但我想表达是这样的例子,我看过很多同学这样写程序(当然,是在他们还不懂数组的时候):

    var ball0 = new Ball();
    var ball1 = new Ball();
    var ball2 = new Ball();

    // loop
    ball0.update();
    ball1.update();
    ball2.update();
    ball0.render();
    ball1.render();
    ball2.render();
    ...

    而用数组就不再需要起这么蹩脚的名字了:

    var balls = [];
    for(var i=0;i<counts;i++) balls.push(new Ball());

    // loop
    for(var i=0;i<counts;i++) {balls[i].update(); balls[i].render()};
    raincious
        42
    raincious  
       2014-01-22 15:19:20 +08:00
    @Mutoo

    你上面的例子本身就需要用到数组,因为是大量建立同一类型的对象。为了后期对这些对象进行批量维护,也需要建立数组。

    但是 “你再也不用去给里面的东西起名字了,而可以通过索引来引用它们” 这句是不对的。因为在很多情况下,建立变量(好吧,其实你建立的数组也是一个变量的值)来储存数据并不适用你说的情况。比如要建立一个配置表,之类。

    代码是给人读的,保持易读性相当重要。
    flynngao
        43
    flynngao  
       2014-01-22 16:34:52 +08:00
    为何非常吃力……,我觉得js是超级蠢的语言了,弱类型而且很多情况不用考虑溢出……
    bzw875
        44
    bzw875  
       2014-01-22 16:39:03 +08:00
    @84840 我也是看完《Javascript DOM 编程的艺术》后选择这本《Javascript高级程序设计(第3版)》来看的。
    kran
        45
    kran  
       2014-01-22 17:03:15 +08:00
    不建议初学者学习js
    wity_lv
        46
    wity_lv  
       2014-01-22 17:06:22 +08:00   1
    @flynngao

    Javascript非常接近两门门非常优秀的语言(C + Lisp). 其实Javascript也非常优秀。
    推荐看这两本书,很薄,很无压力:
    Javascript Good Part
    http://book.douban.com/subject/2994925/

    Functional Javascript
    http://book.douban.com/subject/22733640/

    踩坑踩怕了,看这个:
    http://bonsaiden.github.io/Javascript-Garden/zh/

    @84840
    建议跟着这里的教程学一遍:
    http://www.codecademy.com/zh/dashboard

    书,推荐: turing的《Javascript 基础教程》

    《Javascript高级编程》,不推荐。如果没有大量的js实战做经验,这本书属于自虐。
    《Javascript权威指南》,不推荐,理由同上。此书的厚度等同于新华字典,通读纯属自虐。当工具书翻看非常合适。

    关于DOM方面,看书不合适,看“编程艺术”类的书更不推荐,没有大量经验,不踩大量坑,对此类书不会有什么共鸣,反而会对初学者造成很多束缚。
    学习DOM推荐w3cschool的文档,过一遍非常轻松.

    http://www.w3school.com.cn/htmldom/index.asp?utm_source=twitterfeed&utm_medium=twitter
    whatsupbitch
        47
    whatsupbitch  
       2014-01-22 17:15:32 +08:00
    Javascript的dom操作很蛋疼 所以我觉得还是python php好 一边写网站一边练js
    mactaew
        48
    mactaew  
       2014-01-22 17:18:25 +08:00 via Android
    所以我个人觉得那个入门先学C的年代挺好的,我是从C入门的,后面的学习理解起其他需要来都还是很快的。
    MingZhe
        49
    MingZhe  
       2014-01-22 17:24:52 +08:00   1
    有关看技术类的书籍我来说一下吧,像楼主那么看,一章看几个星期,看不懂是正常的,不懂的东西,再盯着看也不一定懂。读书一定要快,迅速看完一本书,能记住多少就记住多少。离散的点多了,就串成线了。。。在没有认识自然数的时候,就想找到1~10中所有的点,是不太现实的。
    yyfearth
        50
    yyfearth  
       2014-01-22 17:33:59 +08:00
    @83f420984 不明白什么是对象,什么是数组,什么是闭包
    这个不是JS的问题,而是计算机编程基础,看来LZ没有计算机专业的背景啊,需要了解一些计算机编程的基础,任何一门语言C/C++/Java/C#入门比较推荐,另外就是基本的数据结构和算法
    如果LZ学过C啊,数据结构算法啊之类的,学学JS也还不错
    如果LZ真的是完全从零开始学编程,JS确实不是很推荐,对以后的学习可能会造成不好的影响
    而且你说的书基本上都对你来说太难了,因为你很多基础概念不熟悉,不知道所以然
    另外JS最麻烦的地方就是 DOM操作 面向对象编程 以及 闭包,这些东西至少要你比较了解基本的程序开发,数据结构和熟练使用简单的JS或者jQuery之类的类库之后再慢慢啃
    bombless
        51
    bombless  
       2014-01-22 19:59:32 +08:00
    先有别的语言的基础当然会学的快……所以个人感觉重点在于没有捷径……
    miniwade514
        52
    miniwade514  
       2014-01-22 20:15:12 +08:00
    我认为,没有编程基础的时候还不适合学 Javascript,这门语言多少有点非主流,建议先通过 C 或者 C++ 来学习一下最基本的编程,把对象、数组、作用域这些东西理解了,再学 Javascript。按这样的流程,你应该会觉得 Javascript 这门语言本身很简单、很单纯,需要下功夫的地方是活用、善用。

    《Javascript DOM 编程艺术》这本书是最早让我迷上 Javascript 的书。把书上代码都敲下来,一个 Demo 就出来了,这 Demo 比其他语言在终端里面的 output 生动太多了,兴趣一下子就上来了。当然,这本书里涉及的知识还是比较窄的,系统学习还需要其他的书。
    January
        53
    January  
       2014-01-22 20:33:17 +08:00
    "是"
    zzNucker
        54
    zzNucker  
       2014-01-22 21:04:01 +08:00
    Javascript哪里接近lisp了。。。
    83f420984
        55
    83f420984  
    OP
       2014-01-22 21:08:32 +08:00
    @bombless
    @miniwade514
    @yyfearth 谢谢提醒
    flynngao
        56
    flynngao  
       2014-01-22 21:31:40 +08:00
    @wity_lv 为何是@我…………
    jesse_luo
        57
    jesse_luo  
       2014-01-22 21:39:04 +08:00
    学js时花了几天写了个chrome插件,算是了解了语法

    我觉得些chrome插件不错,学习的时候可以把重心放在js语言上
    wity_lv
        58
    wity_lv  
       2014-01-22 22:12:48 +08:00
    @flynngao "我觉得js是超级蠢的语言了,弱类型而且很多情况不用考虑溢出……"
    我把"超级蠢"理解成“烂”。
    我一直很喜欢Javascript这门语言,希望能推广一下Javascript好的部分,减少对js误解。

    P.S:
    "弱类型而且很多情况不用考虑溢出……" 求详解.
    dorentus
        59
    dorentus  
       2014-01-22 23:06:13 +08:00 via iPad
    Geeker
        60
    Geeker  
       2014-01-22 23:06:41 +08:00
    必然是项目驱动学习更好啊,最近实习要做网页,看了看就得上手了,用到不会的立马google,然后现学现用,学起来很快的。不要想把细节问题搞清楚,有些坑说不定一辈子也碰不到,所以先掌握核心,遇到了自然再搜
    xcatliu
        61
    xcatliu  
       2014-01-22 23:19:46 +08:00
    如果致力向前端发展,这儿有个前端知识结构,明确大的行进方向
    https://github.com/JacksonTian/fks
    giumo
        62
    giumo  
       2014-01-22 23:31:01 +08:00
    寒假刚开始在Codecademy上面学Javascript现在学到对象 觉得挺好上手的 在学校有C++的基础什么觉得相比之下简单了很多http://www.codecademy.com/
    coetzee
        63
    coetzee  
       2014-01-23 08:16:08 +08:00
    @MingZhe 哥们儿,我觉得你说的很有道理,我就一直这么做的
    j
        64
    j  
       2014-01-23 09:44:33 +08:00
    找个让自己开心的学习途径,我跳跃度高,你看不懂的话自行补充:

    1 做码农最需要的是要会“拼.字.符.串”,跟什么计算机基础关系不大,好好练习object,string,array,正则(一点点)就可以了(此时此刻别碰jq)
    2 然后遇到前端的实战了,需要搞dom,打开jq源代码,认真了解jq关于dom处理的每个方法怎么写的,为啥这么写。
    3 其他的诸如ajax什么的参见上一条

    帮你减轻负担:

    *市面上大部分的书都是参考资料不是实战指导,用不着天天抱着个参考资料死磕,除非你已经有其他语言的底子,多参与实战吧,github上有“todo项目” https://github.com/tastejs/todomvc ,自己独立做一次,你肯定就入门了。

    *别对框架太认真,包括jq在内都不是必须的,他们只不过是学习资料而已。
    jiyinyiyong
        65
    jiyinyiyong  
       2014-01-23 09:45:27 +08:00
    看看 CoffeeScript? http://read.douban.com/ebook/198648/
    JS 本身不是严谨的语言, 语法比较杂, 用 CoffeeScript 这个子集会好一点,
    结合任务做做具体的例子会比较好, 不要急着去理解 JS 具体的意思.
    难道没有人和楼主说过 JS 其实是个大坑么?
    j
        66
    j  
       2014-01-23 09:50:08 +08:00
    @jiyinyiyong 比起php什么的,js简直就是跳板了。
    vivianalive
        67
    vivianalive  
       2014-01-23 10:08:56 +08:00
    有一个建议是,在学javascrip的时候,千万千万不要碰jQuery...
    Moods
        68
    Moods  
       2014-01-23 10:12:24 +08:00
    各种库用多了,开始确实比较想不通,也没必要一定跟着某些书的思路走。
    83f420984
        69
    83f420984  
    OP
       2014-01-23 11:28:12 +08:00
    @vivianalive 我师傅也跟我说过这样的话,所以目前的学习方法只学原生,jQuery暂时不碰它
    jinwyp
        70
    jinwyp  
       2014-01-23 11:39:24 +08:00
    请直接学angular, Javascript 本身由于10天设计出来的语言,问题很多. 建议从框架入手.
    而且现在是2014年了, 请直接从angular开始学. 或者是ember, 等. 然后在去学习什么DOM操作什么的
    westup
        71
    westup  
       2014-01-23 11:46:38 +08:00
    和楼主一样,第一本js书是这本Javascript DOM编程艺术,后来发现看错书了,里面基础知识讲得太少,《Javascript高级程序设计》必须要买,但是这本书也有缺点,提到太多其他语言(java)了,java也不懂肿么办,只有慢慢啃了,我相信,花多点时间,一定有所成。
    83f420984
        72
    83f420984  
    OP
       2014-01-23 13:29:30 +08:00
    @westup
    @jinwyp 谢谢
    flynngao
        73
    flynngao  
       2014-01-23 14:49:12 +08:00
    @wity_lv 我说js是很蠢的语言是指,相对于其他传统高级语言,C,C++,java,js的限制非常的少,数据结构之间的转换非常简单,而且基本不用考虑语法和算法问题,弱类型也是这个意思
    vellow
        74
    vellow  
       2014-01-23 16:41:08 +08:00
    分享一下全无编程基础学JS的过程,
    第1个月,看一套入门视频,对HTML,CSS,JS有个初步概念,练习
    第2,3月,犀牛书(很无聊),W3School,中间断断续续,看见什么好玩就玩什么,HighCharts,bootstrap,jQuery,用框架可以很快做出炫酷的东西来,成就感会让人继续学下去。
    第4月,正好选了个相关的毕业设计题目,做一个完整的静态网站。
    ...
    后来,研究Javascript高级程序设计,编写高质量代码,高性能Javascript,Javascript设计模式这几本
    ------
    总结一下学JS要循序渐进,每个阶段要看适合该阶段的书,理解是基于实践经验的
    wity_lv
        75
    wity_lv  
       2014-01-23 21:48:19 +08:00
    @flynngao 强类型/弱类型, 编译型/脚本型,各有优势没什么好讨论的,看个人喜好。
    关于算法,主要使用js的场景很少会考虑的算法问题。Javascript支持high-order function,做算法也非常优秀。
    一个“平均阻尼”法的算法,找函数的不动点。
    Lisp实现:
    https://github.com/lvjian700/sicp/blob/master/chapter-1/1.33_fixed-point.lisp

    (define tolerance 0.00001)

    (define (fixed-point f first-guess)
    (define (close-enough? v1 v2)
    (< (abs (- v1 v2)) tolerance))
    (define (try guess)
    (newline)
    (display guess)
    (let ((next (f guess)))
    (if (close-enough? guess next)
    next
    (try next))))
    (try first-guess))

    Javascript实现:
    https://github.com/lvjian700/sicp/blob/master/chapter-1/fixed_point.js

    var toerance = 0.000001;

    function fixed_point (f, first_guess) {
    function close_enough (v1, v2) {
    var delta = Math.abs(v1 - v2);
    return delta < toerance;
    }

    function tryit (guess) {
    console.log(guess);
    var next = f(guess);

    if (close_enough(guess, next)) {
    return next;
    }

    tryit(next);
    }

    return tryit(first_guess);
    }


    用它算一下 x^x = 1000 的一个根。
    fixed_point(function(x) {
    return Math.log(1000)/Math.log(x)
    }, 3.0);
    83f420984
        76
    83f420984  
    OP
       2014-01-23 21:51:54 +08:00
    @vellow
    flynngao
        77
    flynngao  
       2014-01-23 22:46:59 +08:00
    @wity_lv 为你认真态度点个赞
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5390 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 09:05 PVG 17:05 LAX 02:05 JFK 05:05
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86