本人没有前端基础。最近想入门看了看 JavaScript ,准备学习 React 。
感觉 JS 的语法真的好杂,同一种目的有好几种方式能做到,比如设置__proto__
就有好几种方式。好不容易看懂了 this 和 prototype ,结果后面看到 class 是个语法糖,帮你处理了这些。
是不是因为历史遗留,JS 里有很多已经不怎么使用的语法了?
有老哥能大概点拨一下哪些是重点吗?
1
liuw666 2022-08-07 21:32:34 +08:00 via iPhone
react 里用 ts 和 函数组件,不需要写 this 和 prototype 。 只看 es6 语法就行
|
3
fox0001 2022-08-07 21:56:40 +08:00 via Android 1
我觉得语言本身没有什么可以跳过,但是可以不用深入了解。比如 prototype (基于原型)是 JavaScript 的类实现原理,这个要起码要知道。
我反而觉得 JavaScript 的语法很简单。弄懂了 prototype 和 this ,后面哪些都是类库、接口之类的存在了。而且打开浏览器按 F12 就可以编写和运行,很方便。 至于学习 JavaScript ,我推荐《 JavaScript 权威指南》,俗称“犀牛书”。书很厚,很详细,不用全部看完。对感兴趣或者想深入的内容,再详细阅读即可。另外,`developer.mozilla.org` 可以作为字典去查询,每个类型、方法都有详细说明,并能给出浏览器的兼容情况。 至于 TypeScript 、React ,没用过。 |
4
anguiao 2022-08-07 22:06:54 +08:00 1
入门为什么要管原型链?不是很理解。
如果有类 C 语言的编程基础的话,难道不是直接上手开干了么,哪需要专门学习啊。 |
5
Leviathann 2022-08-07 22:12:44 +08:00 1
只要会数据类型、知道 0 '' false undefined null 都可以是 false 、基础语法比如 ifelse 、集合字面量、对象字面量和属性名简写、解构声明、lambda(这是核心中的核心)、event loop 、Promise 、setTimeout
还有一些 array 和 object 的 api 包括( Object.keys values entries) 什么原型链、乱七八糟的 this 大概知道有这么个东西就行了 本来就是垃圾,react 和 ts 也不鼓励用这些垃圾,几乎都帮你屏蔽了,需要解决相关问题的时候你应该已经对 js 有个整体的把握到时候再翻垃圾桶也不迟 |
6
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 开发都是用三等(===)比较的。 |
7
vopin 2022-08-07 22:44:42 +08:00
刚好我也在第无数次入门 JS ,看的教程在讲 prototype 。就是个 class 搞这么绕。
直觉告诉我应该先跳过 |
8
Vegetable 2022-08-07 22:45:47 +08:00
先跳过全部 prototype 相关的吧,这样 js 看起来就正常多了。如果真有必要,回头再补那些玩意好了。
|
11
liuw666 2022-08-07 23:14:49 +08:00 via iPhone
@x97bgt #2 不用去想跳过什么,想想你要用到什么。 打包工具可以用 vite ,配置起来简单。 路由用 react-route-dom ,组件库可以 antd ,样式简单写写就行,我一般全部都是 flex 。 再选个状态管理库 redux recoil jotai 等等,有个能用的就行。 语法的话 就我上面说的 es6 ,不要去想以前的老东西,工程化,现代化,直接写就行了。 写多了,想法就多了,你就知道以前的那些东西要不要学了。 如果有强类型语言的基础,直接写 TS ,不要写 js ,因为 ts 语法提示好,这样你的语法负担就更小了。 而且现在的趋势也是写 ts
|
12
liuw666 2022-08-07 23:18:43 +08:00 via iPhone
可以直接 vite 创建个 react-ts 项目,或者用 vite 官网 awosome-vite 链接的社区模版项目
|
13
liveoppo 2022-08-07 23:35:06 +08:00
原型继承、原型链 都跳过,未来也尽量避免使用
也即,任何看不懂的地方都跳过好了,及早看 es6 和 react ,其后你就知道你的真正需要了 es6 推荐: https://es6.ruanyifeng.com/ |
14
wdhwg001 2022-08-08 01:13:45 +08:00
非常不建议跳过 JavaScript 的任何特性。
非常不建议跳过 JavaScript 的任何特性。 非常不建议跳过 JavaScript 的任何特性。 很重要所以说三遍。甚至我觉得如果你有给政企做项目的需求的话,JScript 的特性也是需要学的。 理由很简单:你初学的时候可以用所有的最佳实践跳过那些坑,但一旦你需要阅读别人的代码,或者调试一些你感觉上正确但实际上却不对的代码的时候,很多时候你必须要了解 JavaScript 中的那些丑陋不堪的部分,并且学会和它们和平相处。 至于原型相关、this 绑定、==的类型转换,至少我面初级前端的时候,这些基础搞不定直接就算了,前端和切图仔还是有区别的。 然后我心里的标准的话,初级和中级前端之间的坎是 webpack 等和 ts 类型体操,中级和高级之间的坎是函数式、通读过英文原版 ecma 标准和 v8 的一些底层。 |
16
renhou 2022-08-08 07:53:04 +08:00
如果你的目的是简单使用 react ,那么建议跳过:
面向对象( this ,new 等),原型链 如果你使用 hooks ,那么建议跳过: 类 如果你只是调用一些 ui 库没有特别复杂的交互要求,那么建议跳过: DOM ,BOM ,事件 如果你的目的是为了找到一份工作,那么不建议跳过任何东西 |
17
murmur 2022-08-08 08:15:30 +08:00
原型链其实不用学的,这东西除了面试基本用不到,造轮子都可以用类了,反正也不考虑 IE 兼容性
|
18
murmur 2022-08-08 08:16:26 +08:00
@wdhwg001 this 绑定在政企项目中处理的非常暴利,要么直接 jquery data 方法,让 jquery 帮着你对象数据跟着走,要么起手 var self = this ;然后后面无脑 self
这俩解决 99.9%的问题 |
19
Bronya 2022-08-08 08:35:44 +08:00
推荐看看胡蝶书,学 js 必看。
|
20
Rocketer 2022-08-08 08:47:27 +08:00 via iPhone 2
prototype 不难理解,但务必止于了解,千万不要用!千万不要用!!千万不要用!!!
这东西就是 js 的糟粕,只有老 jser ,受 prototype 折磨很多年的那种,才会让你用这个,不说斯德哥尔摩症候群吧,至少也是在推崇奇技淫巧。在团队开发中全是雷,没有任何一丝一毫的好处。 this 是个需要注意的问题,很多 bug 都是它导致的,即使经验丰富的老鸟偶尔也会出错。所以能用箭头函数尽量用,没必要花时间跟他较劲。 |
21
johnman 2022-08-08 09:12:32 +08:00
nextjs + typescript 开箱即用
|
22
alphardex 2022-08-08 09:32:32 +08:00 1
拒绝 this ,拒绝 prototype ,拒绝拼字符串,拒绝无脑 for
拥抱箭头,拥抱 class ,拥抱模板字符,拥抱 map |
23
yaphets666 2022-08-08 09:32:58 +08:00
js 才多少东西,语法全部都要会,prototype 这也不是语法
|
24
Mutoo 2022-08-08 09:42:15 +08:00
还真有一个可以跳过,那就是 with 语句。在 MDN 上它甚至被加了垃圾桶图标:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/with |
25
sjhhjx0122 2022-08-08 15:35:25 +08:00
原型链 学还是要学的,用还是不要用。。即使真的要用 react this 、class 这些东西还是要学,不可能一辈子都是 react hook 吧
说不准工作需要 angular 呢,说不准以后大家都是直接用 web component 了呢 |