smilingsun
V2EX  ›  问与答

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

  •  
  •   smilingsun · Jan 19, 2019 · 2805 views
    This topic created in 2672 days ago, the information mentioned may be changed or developed.

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

    8 replies    2019-01-19 12:14:32 +08:00
    ntdll
        1
    ntdll  
       Jan 19, 2019
    这真的是优势嘛,我感觉是个吭呢。(当然,我自己很菜)

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

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

    await/async 的出现,我感觉更像是向传统静态语言靠近
    kindjeff
        2
    kindjeff  
       Jan 19, 2019   ❤️ 7
    JavaScript 的优点是可以写任何东西,缺点是你真的会用它去写这些东西
    giuem
        3
    giuem  
       Jan 19, 2019 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/
    congeec
        4
    congeec  
       Jan 19, 2019 via iPhone
    单线程异步哪个语言做不到?
    callback 是优势?
    qdwang
        5
    qdwang  
       Jan 19, 2019
    js 的唯一优势在于,易学,会的人多。
    passerbytiny
        6
    passerbytiny  
       Jan 19, 2019
    教育不好误人子弟。Java 线程池,如果你只想无脑的用,那么不超过 10 行代码就能完事。
    lhx2008
        7
    lhx2008  
       Jan 19, 2019 via Android
    真的不要再说 js 是单线程了好吗,nodejs 早就有 eventloop 多线程模式,只是说浏览器里面可能单线程比较合适。更别说 IO 操作本来就另有线程池。而且要解决的多线程问题一点没有比传统语言少。
    Wincer
        8
    Wincer  
       Jan 19, 2019 via Android
    Python 和 Java 现在都有异步库了,再说了 callback 明明是最为人诟病的一点,怎么还成被描述成“只需要”,听得像是优势一样。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5531 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 08:21 · PVG 16:21 · LAX 01:21 · JFK 04:21
    ♥ Do have faith in what you're doing.