V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nyse
V2EX  ›  前端开发

想了解一下大家目前 ES6 的使用情况?

  •  
  •   nyse · 2018-08-10 12:32:12 +08:00 · 5200 次点击
    这是一个创建于 2304 天前的主题,其中的信息可能已经有所发展或是发生改变。

    由于部分旧设备(比如 iOS9 以下的设备)或者一些旧浏览器对 ES6 的兼容并不是很好,所以基本目前除了一些后台项目,给用户用的项目基本都没用到 ES6.

    但是面试的时候,发现很多公司都很喜欢牛逼哄哄的问一些关于 ES6 的问题。

    所以想知道目前 ES6 的应用有多广泛,在什么场景、什么项目中会用到?

    第 1 条附言  ·  2018-08-10 13:51:23 +08:00
    那么归根到底,你们的意思就是 ES6 写起来比 ES5 高效、简洁是吧,所以用 ES6 写,再转回 ES5.

    因为我是没试过这么折腾,不知道会不会增加额外的调试成本。

    反倒是被不支持 ES6 的情景坑了。
    20 条回复    2018-09-05 08:58:27 +08:00
    internelp
        1
    internelp  
       2018-08-10 12:34:14 +08:00
    我以为楼主说的是蔚来
    agdhole
        2
    agdhole  
       2018-08-10 12:35:29 +08:00
    写 Node.js,没有兼容的担忧
    stellar
        3
    stellar  
       2018-08-10 12:37:33 +08:00 via iPhone
    有了转译器,自创语法都没问题呀
    huiyifyj
        4
    huiyifyj  
       2018-08-10 12:38:13 +08:00 via Android
    es6 是趋势。
    再说也没有叫你用 es6 代码作为生产环境啊。
    你可以 babel 转码成 es5 啊。
    其实 es6 如果你愿意,什么场景都可以用的。
    Mutoo
        5
    Mutoo  
       2018-08-10 12:39:46 +08:00
    babel 了解一下,现在我们公司都是用 es6 写,然后打包的时候 babel 自动转换成 es5.1
    nyse
        6
    nyse  
    OP
       2018-08-10 12:43:15 +08:00
    @stellar #3
    @huiyifyj #4
    @Mutoo #5

    那么又为什么要用 babel 转成 ES5 呢,干嘛不直接写 ES5 呢?

    你们一般是怎么用 ES6 的,写后端吗?
    Mutoo
        7
    Mutoo  
       2018-08-10 12:53:35 +08:00
    @nyse web 外包公司,前端。es6 写起来很方便,语法糖很多。直接写 es5 要累死,累人的事当然是让编译器去处理啦。
    blanu
        8
    blanu  
       2018-08-10 12:59:15 +08:00
    就算是老系统,只要能在中间加一层编译,都能使用 ES6 语法。
    不支持前端编译的,我认为目前可以退出前端圈了(也许过个 10 年可以回来)。
    UNDEFlNED
        9
    UNDEFlNED  
       2018-08-10 13:27:01 +08:00
    "但是面试的时候,发现很多公司都很喜欢牛逼哄哄的问一些关于 ES6 的问题" 实际开发都用到 ES8 了,babel 连 ES9 都支持了
    meetocean
        10
    meetocean  
       2018-08-10 13:43:00 +08:00
    昨天刚刚学习了一下 es8,代码简洁很多,有种想重写 js 的想法,最后还是忍住了,以前写的也好用,没必要折腾。
    DOLLOR
        11
    DOLLOR  
       2018-08-10 13:58:32 +08:00
    写 ES2018,用 TS 转译,在 IE8 上跑无压力。
    luob
        12
    luob  
       2018-08-10 14:36:45 +08:00
    对于工程化的前端项目,使用 es6 根本不是成本,反而是降低了对前端水平的要求。

    没有 es6 之前,写个 for 循环得用闭包,定义块级变量得写个立即执行函数,你让新人怎么玩

    如果只有三个页面,那用 jquery 糊一糊就过去了,没有 for 循环也不需要考虑变量污染,就当我什么也没说。
    wu67
        13
    wu67  
       2018-08-10 16:18:03 +08:00
    反正我是直接写最新的语法, 除非不会用, 以及生成器那块不用
    wu67
        14
    wu67  
       2018-08-10 16:18:57 +08:00
    babel 转义是兼容旧版本的 webview 和垃圾浏览器, 用 es6 是你个人对技术的追求
    murmur
        15
    murmur  
       2018-08-10 16:21:04 +08:00
    @meetocean 代码简洁不代表工程性好 真要出了理解问题你还得加倍把注释写回来
    murmur
        16
    murmur  
       2018-08-10 16:23:32 +08:00
    @luob 没 es6 之前直接用 data 方法把数据打到元素上触发事件的时候直接从 currentTarget 上拿数据 真以为没 let 和闭包就啥都干不了了么
    以前的 jquery 系列 ui 随便找个元素 data 一下上面都挂了一堆数据
    maichael
        17
    maichael  
       2018-08-10 16:33:08 +08:00
    这是个取舍的问题,用更新的 ES 就代表着更多的语法糖。但是与此同时,兼容性自然是降低的,而为了保持原有的兼容性就要引入 babel 之类的东西,而这会使性能降低。

    事实上我觉得即便你的项目真的对这种兼容看的很重,但这一类老设备总是会被淘汰的,所以对于项目而言,保留迁移到新的 ES 版本的能力总是好的。

    对于个人而言,新的东西总是要学的,即便现在不一定用的上,过一两年情况就可能不一样了。
    maichael
        18
    maichael  
       2018-08-10 16:33:56 +08:00
    @murmur 事实上这个即便是 ES5 也不可避免,这和人有关,工具毕竟只是一方面。
    TomatoYuyuko
        19
    TomatoYuyuko  
       2018-08-10 16:42:20 +08:00
    额,面试的时候 很少遇到问 es6 的,有时候 用 es6 回答问题 还不让= =,传统一点的项目都没做工程化就不说了,新一点的项目这东西随人吧,反正语法糖而已,怎么写舒服就怎么写,反正最后都转译了。目前手里的都是前者,没办法,不过遇到麻烦的东西还是会夹点私货用用模板字符串之类的(
    liangfengbo
        20
    liangfengbo  
       2018-09-05 08:58:27 +08:00
    思路差不多,用 ES6 写代码简洁优雅
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2803 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:49 · PVG 20:49 · LAX 04:49 · JFK 07:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.