首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

关于 js 的优势,这句话有什么不严谨的地方吗

  •  
  •   smilingsun · 121 天前 · 1156 次点击
    这是一个创建于 121 天前的主题,其中的信息可能已经有所发展或是发生改变。

    JavaScript 的优势,它的 language runtime 是单线程的,异步靠的是 event loop,而不用开发者操心多线程。就比如写爬虫,如果要并发地爬,Python 或者 Java 大概率需要 developer 开线程池自己维护,js 的话只需要 callback 就好了

    8 回复  |  直到 2019-01-19 12:14:32 +08:00
        1
    gam2046   120 天前
    这真的是优势嘛,我感觉是个吭呢。(当然,我自己很菜)

    event loop 并不是多线程,本质上依旧是单线程,当然现在有些 JavaScript Runtime 有提供 worker-thread,那就是真多线程了,但这 JavaScript 是不可控的。

    不论是 promise 还是回调地狱,在多次嵌套的情况下,都是噩梦。

    await/async 的出现,我感觉更像是向传统静态语言靠近
        2
    kindjeff   120 天前   ♥ 7
    JavaScript 的优点是可以写任何东西,缺点是你真的会用它去写这些东西
        3
    giuem   120 天前 via iPhone
    js 代码的执行确实是单线程的,但是网络 io,文件 io 这些是在不同的线程中

    可以看一下这篇文章 http://liyangready.github.io/2015/08/14/nodejs%E7%9C%9F%E7%9A%84%E6%98%AF%E5%8D%95%E7%BA%BF%E7%A8%8B%E5%90%97%EF%BC%9F/
        4
    congeec   120 天前 via iPhone
    单线程异步哪个语言做不到?
    callback 是优势?
        5
    qdwang   120 天前
    js 的唯一优势在于,易学,会的人多。
        6
    passerbytiny   120 天前
    教育不好误人子弟。Java 线程池,如果你只想无脑的用,那么不超过 10 行代码就能完事。
        7
    lhx2008   120 天前 via Android
    真的不要再说 js 是单线程了好吗,nodejs 早就有 eventloop 多线程模式,只是说浏览器里面可能单线程比较合适。更别说 IO 操作本来就另有线程池。而且要解决的多线程问题一点没有比传统语言少。
        8
    Wincer   120 天前 via Android
    Python 和 Java 现在都有异步库了,再说了 callback 明明是最为人诟病的一点,怎么还成被描述成“只需要”,听得像是优势一样。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4318 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 02:38 · PVG 10:38 · LAX 19:38 · JFK 22:38
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1