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

2022-08-07 21:19:20 +08:00
 x97bgt

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

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

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

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

2860 次点击
所在节点    前端开发
26 条回复
liuw666
2022-08-07 21:32:34 +08:00
react 里用 ts 和 函数组件,不需要写 this 和 prototype 。 只看 es6 语法就行
x97bgt
2022-08-07 21:38:56 +08:00
@liuw666 哪些是推荐跳过的?
fox0001
2022-08-07 21:56:40 +08:00
我觉得语言本身没有什么可以跳过,但是可以不用深入了解。比如 prototype (基于原型)是 JavaScript 的类实现原理,这个要起码要知道。

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

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

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

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

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

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

es6 推荐: https://es6.ruanyifeng.com/
wdhwg001
2022-08-08 01:13:45 +08:00
非常不建议跳过 JavaScript 的任何特性。

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

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

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

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

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

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

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


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

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

这俩解决 99.9%的问题
Bronya
2022-08-08 08:35:44 +08:00
推荐看看胡蝶书,学 js 必看。
Rocketer
2022-08-08 08:47:27 +08:00
prototype 不难理解,但务必止于了解,千万不要用!千万不要用!!千万不要用!!!

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

this 是个需要注意的问题,很多 bug 都是它导致的,即使经验丰富的老鸟偶尔也会出错。所以能用箭头函数尽量用,没必要花时间跟他较劲。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/871286

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX