推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
pinkman

请教如何系统的学习下JavaScript,大学时候选修课学习过编程,虽然毕业后没有进入这行但感觉基本的概念自己还是了解的,平日也会点基础的Python,但看到JS完全傻眼了...

  •  
  •   pinkman · Jun 8, 2013 · 6086 views
    This topic created in 4731 days ago, the information mentioned may be changed or developed.
    想实现一个鼠标滑倒特定位置显示悬浮窗口的效果,网上搜了下,搜到一个范例脚本完全看傻眼了...

    var tip={$:function(ele){
    if(typeof(ele)=="object")
    return ele;
    else if(typeof(ele)=="string"||typeof(ele)=="number")
    return document.getElementById(ele.toString());
    return null;
    },

    这事所谓的匿名函数吧?嵌套起来太难看懂了...一个接一个...


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>鼠标跟随提示框</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
    <style type="text/css">
    body{font:12px/1.8 arial;}
    a,a:visited{color:#3366cc;text-decoration:none;}
    a:hover{color:#f60;text-decoration:underline;}
    .tip{width:200px;border:2px solid #ddd;padding:8px;background:#f1f1f1;color:#666;}
    img{border:none;}
    </style>
    <script type="text/javascript">
    var tip={$:function(ele){
    if(typeof(ele)=="object")
    return ele;
    else if(typeof(ele)=="string"||typeof(ele)=="number")
    return document.getElementById(ele.toString());
    return null;
    },
    mousePos:function(e){
    var x,y;
    var e = e||window.event;
    return{x:e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,
    y:e.clientY+document.body.scrollTop+document.documentElement.scrollTop};
    },
    start:function(obj){
    var self = this;
    var t = self.$("mjs:tip");
    obj.onmousemove=function(e){
    var mouse = self.mousePos(e);
    t.style.left = mouse.x + 10 + 'px';
    t.style.top = mouse.y + 10 + 'px';
    t.innerHTML = obj.getAttribute("tips");
    t.style.display = '';
    };
    obj.onmouseout=function(){
    t.style.display = 'none';
    };
    }
    }
    </script>
    </head>
    <body>
    <a href="#" title="liehuo.net" target="_blank"><img src="http://www.veryhuo.com/liehuo.net/images/liehuo2009/logo.gif" title="liehuo.net" onmouseover="tip.start(this)" tips="显示文本" /></a>
    <br /><br />
    <a href="#" title="liehuo.net" target="_blank" onmouseover="tip.start(this)" tips="显示文本</a>
    <div id="mjs:tip" class="tip" style="position:absolute;left:0;top:0;display:none;"></div>
    </body>
    </html>
    16 replies    1970-01-01 08:00:00 +08:00
    zpd
        1
    zpd  
       Jun 8, 2013   ❤️ 1
    exoticknight
        2
    exoticknight  
       Jun 8, 2013   ❤️ 1
    看起来还好吧……
    一开始贴出来那个$的函数只是取DOM对象……
    先去w3c看入门的吧
    ETiV
        3
    ETiV  
       Jun 8, 2013   ❤️ 1
    建议还是从单纯的JS开始学吧.
    你这个是混入了HTML DOM了, 什么style啊, mouseevent之类的. 所以看上去很杂乱.
    exoticknight
        4
    exoticknight  
       Jun 8, 2013   ❤️ 1
    还有你说的那个不是匿名函数,是一个函数名是$的函数。
    这样定义:
    var tip {
    $:function() {}
    }
    就可以用tip.$()来调用这个函数
    PrideChung
        5
    PrideChung  
       Jun 8, 2013   ❤️ 1
    我推荐tutsplus的这个视频:
    JavaScript零基础入门。
    http://net.tutsplus.com/tutorials/javascript-ajax/javascript-from-null-video-series/

    主讲是tutsplus的明星主讲Jeffrey Way,视频是2010年的了,不过语言的基础还是一样,大概闭包那段会杀死不少脑细胞吧,还有什么“立刻执行的闭包”……
    cauliturtle
        6
    cauliturtle  
       Jun 8, 2013   ❤️ 1
    @PrideChung 講起作者,一定去Youtube看遍Douglas Crockford的演講。作為一定javascript前端和後端的開發者,都一定受用
    pinkman
        8
    pinkman  
    OP
       Jun 8, 2013
    感谢大家, 都已给出感谢了~
    gdzdb
        9
    gdzdb  
       Jun 8, 2013
    分享我当时是怎么学的,不一定适合所有人。

    买一本《javascript高级程序编程》或犀牛书,当时是第二版,只看语法那几节。
    然后就开始自己瞎折腾,从基础的加减乘除到后面的各种数据处理,完成一个简单功能后,再给自己加难题,解决再加,不懂就拿那本书起来翻。

    然后就可以开始看别人的代码了,拆解分析流程原理,理解关键点在哪里,然后,然后你已经知道怎么学下去了。

    @Fenng 也说过,技术书不建议从头一节节看,这样会失去学习的乐趣,而且容易晕。
    bengol
        10
    bengol  
       Jun 8, 2013
    javascript一直学不会哎,每次看到语法那儿就晕了
    xiaogui
        11
    xiaogui  
       Jun 9, 2013
    第一段看着明显没什么压力呀
    i18n
        12
    i18n  
       Jun 9, 2013 via iPhone
    不错的经验
    FrankFang128
        13
    FrankFang128  
       Jun 9, 2013
    不要觉得嵌套函数难看,那是JS的精髓之一——函数式编程。
    DaniloSam
        14
    DaniloSam  
       Jun 9, 2013
    写这代码的脑袋让驴踢了。。。

    不要去google代码来看,尤其国内的,没用

    先去w3c看一些基本的东西,了解一下这个语言,然后学学jQuery的使用,做点小东西热热身

    多逛逛,github,看各种jQuery插件源码是个入门的好东西

    在之后就是实现具体的业务,总结出属于自己的各种应对接口的开发方式

    再看看各路框架源码,同样的需求是如何用不同的方式实现的,自己试着写一写

    书的话不推荐了,好书很多,NCZ那本可以多看,细看

    熟悉一些原理,闭包,参数,原型链,表达式

    说白了就是多写

    几万行代码下来也就入门了
    kebot
        15
    kebot  
       Jun 9, 2013
    其实学CoffeeScript是一个提高Javascript水平的好方法。
    clowwindy
        16
    clowwindy  
       Jun 9, 2013
    我现在已经觉得从 nodejs 开始学 js 可能会容易一些。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   948 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 87ms · UTC 20:05 · PVG 04:05 · LAX 13:05 · JFK 16:05
    ♥ Do have faith in what you're doing.