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

javascript 的括号太多之后看不清层次

  •  
  •   des · 2015-05-30 12:05:42 +08:00 via Android · 7206 次点击
    这是一个创建于 3470 天前的主题,其中的信息可能已经有所发展或是发生改变。

    层次太多之后分不清哪个是哪个
    特别是在参数中直接传一个匿名函数,然后直接调用这个函数,里面又有其他逻辑,东西多了就有点分不清了
    各位都是怎么看的,有技巧吗?
    j

    48 条回复    2015-06-01 15:23:19 +08:00
    oott123
        1
    oott123  
       2015-05-30 12:16:48 +08:00
    coffeescript……

    如果只是看的话 换个好的 IDE 都有括号提示的
    hahasong
        2
    hahasong  
       2015-05-30 12:18:16 +08:00
    弃之,改写 python就没这个烦恼了
    des
        3
    des  
    OP
       2015-05-30 12:26:25 +08:00 via Android
    @oott123 IDE是有提示,但是某些情况还是看着晕
    funagi
        4
    funagi  
       2015-05-30 12:28:45 +08:00
    1. 换个好的IDE,如Webstorm;
    2. 用CoffeeScript辅助编写;
    3. 养成良好的习惯,避免过度嵌套,该隔开的隔开,该注释的注释。
    clino
        5
    clino  
       2015-05-30 12:29:24 +08:00 via Android
    缩进搞好点会不会比较好些
    des
        6
    des  
    OP
       2015-05-30 12:40:58 +08:00 via Android
    @funagi 小的js用webstom太慢,我用notepad++也不差啊,
    别人的代码你也不能强求吧,另外还有压缩过的,即使合适化了,有些也看着眼花
    funagi
        7
    funagi  
       2015-05-30 12:49:25 +08:00
    @des notepad++是不差,但顶多是瑞士军刀,比不上Webstorm这专业大杀器,太慢的话建议升级电脑,别亏待自己,当然没钱升级是另外一回事。
    既然是别人的代码,只能自己硬啃,多加点注释把代码段隔开,这种真的没多少技巧。
    aisk
        8
    aisk  
       2015-05-30 12:50:43 +08:00
    用 Promise 避免嵌套。
    oisc
        9
    oisc  
       2015-05-30 12:54:43 +08:00
    用两个空格缩进是趋势。。。。。逃)
    des
        10
    des  
    OP
       2015-05-30 13:02:28 +08:00 via Android   ❤️ 1
    @aisk 这个好

    @oisc 你的括号打反了 (逃
    des
        11
    des  
    OP
       2015-05-30 13:06:07 +08:00 via Android
    @oisc 到底是两个空格还是一个tab,另外空格也分全角和半角,反正都看不清… 感觉也是个坑
    oisc
        12
    oisc  
       2015-05-30 13:17:54 +08:00
    @des 空格党表示必须空格啊 ,写js还是应该想方法比如用then.js避免深层嵌套吧
    sudoz
        13
    sudoz  
       2015-05-30 13:40:57 +08:00
    代码风格很重要
    shiny
        14
    shiny  
       2015-05-30 13:42:02 +08:00
    async.js、promise
    tux
        15
    tux  
       2015-05-30 13:47:29 +08:00
    {
    {
    {
    ;
    }
    }
    }
    zzetao
        16
    zzetao  
       2015-05-30 15:33:54 +08:00   ❤️ 1
    function a(){
    var b = {

    }//b end
    }//a end
    yyy
        17
    yyy  
       2015-05-30 16:48:24 +08:00
    推荐promise
    yimity
        18
    yimity  
       2015-05-30 16:50:40 +08:00 via Android
    这么多嵌套说明要重构成小函数了。
    imskull
        19
    imskull  
       2015-05-30 16:54:09 +08:00
    同建议promise,这个必须先完全熟练掌握,后面觉得多得话只能学会IDE高亮,超过一页就只能前后括号来回跳转着看了。
    scarlex
        20
    scarlex  
       2015-05-30 16:55:25 +08:00
    重构成多个小函数+1
    ikaros
        21
    ikaros  
       2015-05-30 17:45:38 +08:00
    同,即使有IDE或者编辑器提示是关闭哪个括号的,但是不能同时显示所有括号吧
    muzuiget
        22
    muzuiget  
       2015-05-30 17:51:39 +08:00
    这不就是回调地狱嘛,从代码格式(例如缩进,高亮对齐)下手都是治标,重构优化逻辑结构治本。

    有人还特意注册了一个网站,就还一篇文章 http://callbackhell.com/
    asj
        23
    asj  
       2015-05-30 17:52:34 +08:00 via iPad
    学lisp
    notcome
        24
    notcome  
       2015-05-30 18:29:29 +08:00 via iPhone
    用 PureScript 吧
    Ironsongming
        25
    Ironsongming  
       2015-05-30 19:05:36 +08:00 via iPhone
    赶紧写python去
    magicdawn
        26
    magicdawn  
       2015-05-30 20:51:15 +08:00
    lisp系笑而不语
    Gonster
        27
    Gonster  
       2015-05-30 20:59:40 +08:00
    @asj 学完lz要变成括号僵尸了^o^
    des
        28
    des  
    OP
       2015-05-30 21:58:33 +08:00 via Android
    @Gonster 想起特工偷代码的那个笑话了
    Gonster
        29
    Gonster  
       2015-05-30 22:05:21 +08:00
    @des 噗噗噗
    Axurez
        30
    Axurez  
       2015-05-30 22:20:30 +08:00
    ES6
    liran319
        31
    liran319  
       2015-05-30 22:46:39 +08:00
    @hahasong 论python缩进的好处XD
    gaotongfei
        32
    gaotongfei  
       2015-05-30 23:09:07 +08:00
    我也来说句, lisp大法好
    wolfan
        33
    wolfan  
       2015-05-30 23:11:02 +08:00
    听到python时我尽无言以对。
    karloku
        34
    karloku  
       2015-05-30 23:30:55 +08:00
    po主可以看我头像开心开心....
    zwy100e72
        35
    zwy100e72  
       2015-05-30 23:34:29 +08:00
    @liran319 缩进一删,代码就废
    论python的保密性(
    flashback313
        36
    flashback313  
       2015-05-30 23:46:56 +08:00
    Brackets 的括号高亮不错,喜欢 sublime 的话可以装一个 Brackets 的插件。
    luoway
        37
    luoway  
       2015-05-31 00:10:11 +08:00 via Android
    @hahasong
    @Ironsongming
    @liran319
    @zwy100e72

    学python 2还是3
    论python的版本兼容
    liran319
        38
    liran319  
       2015-05-31 00:31:14 +08:00
    @luoway 目前2的库还是丰富一些吧
    liran319
        39
    liran319  
       2015-05-31 00:32:35 +08:00
    @zwy100e72 保密完了要手动恢复也是基本无解啊
    jsq2627
        40
    jsq2627  
       2015-05-31 01:10:13 +08:00
    $(document).ready( function(){
    $("button").click( function(){
    $.get("demo_test.asp", function(data, status){
    alert("Data: " + data + "\nStatus: " + status); }); });
    jsq2627
        41
    jsq2627  
       2015-05-31 01:14:04 +08:00   ❤️ 1
    其实我要打的是这个样子的。
    easynoder
        42
    easynoder  
       2015-05-31 07:39:26 +08:00
    keep your code shallow
    skinqis
        43
    skinqis  
       2015-05-31 11:13:44 +08:00
    选个顺手的IDE, 写的时候注意换行和缩进, 层次还是很清晰的.
    上webstorm吧...个人感觉非常好用...各种高亮也是很符合习惯的
    tuoxie007
        44
    tuoxie007  
       2015-05-31 11:39:54 +08:00
    @jsq2627 你这样何苦呢,coffeescript很适合你
    joyee
        45
    joyee  
       2015-05-31 23:41:26 +08:00
    如果是callback hell造成的嵌套太多,CoffeeScript也没什么用的,不过就是从很多括号变成了很多缩进而已,如果你还是用2空格缩进,一样看得很痛苦……别人写的代码只能忍了,自己可控的代码可以用async/await/generator/promise/CPS逃离callback hell
    hxtheone
        46
    hxtheone  
       2015-06-01 13:54:52 +08:00
    @des 会有人在代码里用全角字符吗?
    des
        47
    des  
    OP
       2015-06-01 14:01:28 +08:00
    @hxtheone 比如有打中文的时候啊,一不小心忘了切回来……
    hxtheone
        48
    hxtheone  
       2015-06-01 15:23:19 +08:00
    @des 这也算。。一般遇到全角字符编译器/解释器就直接报错了吧?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2630 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 15:50 · PVG 23:50 · LAX 07:50 · JFK 10:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.