V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
x97bgt

学习 js,哪些语法要掌握哪些可以跳过?

  •  
  •   x97bgt · Aug 7, 2022 · 3511 views
    This topic created in 1371 days ago, the information mentioned may be changed or developed.

    本人没有前端基础。最近想入门看了看 JavaScript ,准备学习 React 。

    感觉 JS 的语法真的好杂,同一种目的有好几种方式能做到,比如设置__proto__就有好几种方式。好不容易看懂了 this 和 prototype ,结果后面看到 class 是个语法糖,帮你处理了这些。

    是不是因为历史遗留,JS 里有很多已经不怎么使用的语法了?

    有老哥能大概点拨一下哪些是重点吗?

    26 replies    2022-08-09 01:25:12 +08:00
    nowtg
        1
    nowtg  
       Aug 7, 2022 via iPhone
    react 里用 ts 和 函数组件,不需要写 this 和 prototype 。 只看 es6 语法就行
    x97bgt
        2
    x97bgt  
    OP
       Aug 7, 2022
    @liuw666 哪些是推荐跳过的?
    fox0001
        3
    fox0001  
       Aug 7, 2022 via Android   ❤️ 1
    我觉得语言本身没有什么可以跳过,但是可以不用深入了解。比如 prototype (基于原型)是 JavaScript 的类实现原理,这个要起码要知道。

    我反而觉得 JavaScript 的语法很简单。弄懂了 prototype 和 this ,后面哪些都是类库、接口之类的存在了。而且打开浏览器按 F12 就可以编写和运行,很方便。

    至于学习 JavaScript ,我推荐《 JavaScript 权威指南》,俗称“犀牛书”。书很厚,很详细,不用全部看完。对感兴趣或者想深入的内容,再详细阅读即可。另外,`developer.mozilla.org` 可以作为字典去查询,每个类型、方法都有详细说明,并能给出浏览器的兼容情况。

    至于 TypeScript 、React ,没用过。
    anguiao
        4
    anguiao  
       Aug 7, 2022   ❤️ 1
    入门为什么要管原型链?不是很理解。
    如果有类 C 语言的编程基础的话,难道不是直接上手开干了么,哪需要专门学习啊。
    Leviathann
        5
    Leviathann  
       Aug 7, 2022   ❤️ 1
    只要会数据类型、知道 0 '' false undefined null 都可以是 false 、基础语法比如 ifelse 、集合字面量、对象字面量和属性名简写、解构声明、lambda(这是核心中的核心)、event loop 、Promise 、setTimeout

    还有一些 array 和 object 的 api 包括( Object.keys values entries)
    什么原型链、乱七八糟的 this 大概知道有这么个东西就行了
    本来就是垃圾,react 和 ts 也不鼓励用这些垃圾,几乎都帮你屏蔽了,需要解决相关问题的时候你应该已经对 js 有个整体的把握到时候再翻垃圾桶也不迟
    AV1
        6
    AV1  
       Aug 7, 2022
    教程看这个: https://zh.javascript.info/
    文档看这个: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript

    __proto__、prototype 这种东西,普通开发者是不需要接触的,现代 JS 开发直接用 class 就行了。
    还有网上经常黑 JS 的那个双等(==)真值表,当段子看看就行了,别理它,正常的 JS 开发都是用三等(===)比较的。
    vopin
        7
    vopin  
       Aug 7, 2022
    刚好我也在第无数次入门 JS ,看的教程在讲 prototype 。就是个 class 搞这么绕。
    直觉告诉我应该先跳过
    Vegetable
        8
    Vegetable  
       Aug 7, 2022
    先跳过全部 prototype 相关的吧,这样 js 看起来就正常多了。如果真有必要,回头再补那些玩意好了。
    x97bgt
        9
    x97bgt  
    OP
       Aug 7, 2022 via iPhone
    @anguiao 我直接想撸一遍 molliza 的文档,没想到看得这么晕
    x97bgt
        10
    x97bgt  
    OP
       Aug 7, 2022 via iPhone
    @DOLLOR 感谢老哥,这教程看起来很简洁。
    nowtg
        11
    nowtg  
       Aug 7, 2022 via iPhone
    @x97bgt #2 不用去想跳过什么,想想你要用到什么。 打包工具可以用 vite ,配置起来简单。 路由用 react-route-dom ,组件库可以 antd ,样式简单写写就行,我一般全部都是 flex 。 再选个状态管理库 redux recoil jotai 等等,有个能用的就行。 语法的话 就我上面说的 es6 ,不要去想以前的老东西,工程化,现代化,直接写就行了。 写多了,想法就多了,你就知道以前的那些东西要不要学了。 如果有强类型语言的基础,直接写 TS ,不要写 js ,因为 ts 语法提示好,这样你的语法负担就更小了。 而且现在的趋势也是写 ts
    nowtg
        12
    nowtg  
       Aug 7, 2022 via iPhone
    可以直接 vite 创建个 react-ts 项目,或者用 vite 官网 awosome-vite 链接的社区模版项目
    liveoppo
        13
    liveoppo  
       Aug 7, 2022
    原型继承、原型链 都跳过,未来也尽量避免使用

    也即,任何看不懂的地方都跳过好了,及早看 es6 和 react ,其后你就知道你的真正需要了

    es6 推荐: https://es6.ruanyifeng.com/
    wdhwg001
        14
    wdhwg001  
       Aug 8, 2022
    非常不建议跳过 JavaScript 的任何特性。

    非常不建议跳过 JavaScript 的任何特性。

    非常不建议跳过 JavaScript 的任何特性。

    很重要所以说三遍。甚至我觉得如果你有给政企做项目的需求的话,JScript 的特性也是需要学的。

    理由很简单:你初学的时候可以用所有的最佳实践跳过那些坑,但一旦你需要阅读别人的代码,或者调试一些你感觉上正确但实际上却不对的代码的时候,很多时候你必须要了解 JavaScript 中的那些丑陋不堪的部分,并且学会和它们和平相处。

    至于原型相关、this 绑定、==的类型转换,至少我面初级前端的时候,这些基础搞不定直接就算了,前端和切图仔还是有区别的。

    然后我心里的标准的话,初级和中级前端之间的坎是 webpack 等和 ts 类型体操,中级和高级之间的坎是函数式、通读过英文原版 ecma 标准和 v8 的一些底层。
    fyw321451
        15
    fyw321451  
       Aug 8, 2022 via iPhone
    @wdhwg001 ?面那些有什么用 卷死所有人从你开始?
    renhou
        16
    renhou  
       Aug 8, 2022
    如果你的目的是简单使用 react ,那么建议跳过:
    面向对象( this ,new 等),原型链

    如果你使用 hooks ,那么建议跳过:


    如果你只是调用一些 ui 库没有特别复杂的交互要求,那么建议跳过:
    DOM ,BOM ,事件

    如果你的目的是为了找到一份工作,那么不建议跳过任何东西
    murmur
        17
    murmur  
       Aug 8, 2022
    原型链其实不用学的,这东西除了面试基本用不到,造轮子都可以用类了,反正也不考虑 IE 兼容性
    murmur
        18
    murmur  
       Aug 8, 2022
    @wdhwg001 this 绑定在政企项目中处理的非常暴利,要么直接 jquery data 方法,让 jquery 帮着你对象数据跟着走,要么起手 var self = this ;然后后面无脑 self

    这俩解决 99.9%的问题
    Bronya
        19
    Bronya  
       Aug 8, 2022
    推荐看看胡蝶书,学 js 必看。
    Rocketer
        20
    Rocketer  
       Aug 8, 2022 via iPhone   ❤️ 2
    prototype 不难理解,但务必止于了解,千万不要用!千万不要用!!千万不要用!!!

    这东西就是 js 的糟粕,只有老 jser ,受 prototype 折磨很多年的那种,才会让你用这个,不说斯德哥尔摩症候群吧,至少也是在推崇奇技淫巧。在团队开发中全是雷,没有任何一丝一毫的好处。

    this 是个需要注意的问题,很多 bug 都是它导致的,即使经验丰富的老鸟偶尔也会出错。所以能用箭头函数尽量用,没必要花时间跟他较劲。
    johnman
        21
    johnman  
       Aug 8, 2022
    nextjs + typescript 开箱即用
    alphardex
        22
    alphardex  
       Aug 8, 2022   ❤️ 1
    拒绝 this ,拒绝 prototype ,拒绝拼字符串,拒绝无脑 for
    拥抱箭头,拥抱 class ,拥抱模板字符,拥抱 map
    yaphets666
        23
    yaphets666  
       Aug 8, 2022
    js 才多少东西,语法全部都要会,prototype 这也不是语法
    Mutoo
        24
    Mutoo  
       Aug 8, 2022
    还真有一个可以跳过,那就是 with 语句。在 MDN 上它甚至被加了垃圾桶图标:

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/with
    linkopeneyes
        25
    linkopeneyes  
       Aug 8, 2022
    原型链 学还是要学的,用还是不要用。。即使真的要用 react this 、class 这些东西还是要学,不可能一辈子都是 react hook 吧
    说不准工作需要 angular 呢,说不准以后大家都是直接用 web component 了呢
    autoxbc
        26
    autoxbc  
       Aug 9, 2022
    @murmur #17 总有需要手动嫁接原型链的时候,类只能解决典型用法
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3093 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 76ms · UTC 03:36 · PVG 11:36 · LAX 20:36 · JFK 23:36
    ♥ Do have faith in what you're doing.