前提简介:平时的工作内容重业务。自己喜欢记笔记,喜欢总结,涉猎范围比较广(主前端全栈),obsidian 有 500 篇自己码的笔记,记不得的知识点就秒搜一下。 随便举几个例子:
[...new Set(arr)]
等等很多没见过的小技巧时我是震惊的,会怀疑自己,会害怕以后不这样写就是代码冗余,不优雅。为了面试要去强记一些东西,研究得深的话(知识点太多了)记又记不住,记住这个忘记那个,是我记忆力衰退了吗,还是大家都这样。 我一直认为代码只是工具,代码是为了实现业务,业务是为了创造经济价值,技术永远在变革,几年前的写法如今很多都已淘汰,以后的 api 肯定是越来越人性化,越来越友好。我认为知识的广度更加重要,现在这样,心智压力真的好大。
1
VonBrank 2023-03-02 01:10:28 +08:00 via Android
不用 ts 火葬场#doge
|
2
Leviathann 2023-03-02 01:15:06 +08:00 3
less is more
我怎么觉得 some find filter 这些写出来比 for 的代码更 less 且表达得更 more 呢? |
3
enchilada2020 2023-03-02 01:20:00 +08:00 via Android
这就是 JS 诸多被人诟病的问题之一 一个东西 N 种写法 还哪个都不完美 使用者水平不行的话写出来的就是一坨…然后为了缓解它的各种毛病又衍生出一堆工具来 ESLint TS 之类的 如果没有 TS 又没有适当的注释 读 JS 代码那才叫痛苦
|
4
liuw666 2023-03-02 08:13:19 +08:00 via iPhone
只写 TS
|
5
chendy 2023-03-02 08:19:18 +08:00
迫于 js 写不明白换了 ts
不玩花活写业务代码的话大脑可以关机… |
6
mascteen 2023-03-02 08:29:56 +08:00 via Android
|
7
versun 2023-03-02 08:30:07 +08:00
同感,纯 js 真的感觉负担重,正在慢慢转 ts ,还有目前也在学 rails....
|
8
ragnaroks 2023-03-02 08:40:17 +08:00
第二学会的语言是 csharp 的我第一时间从 js 转了 ts ,虽然那个时候的 ts 比 js 难用。准确的说我很难接受没有类型的语言,除了 js 还有 PHP 、LUA
|
9
musi 2023-03-02 08:45:42 +08:00
上面说 ts 的,不觉得 ts 的花活更多吗
网上 ts 的类型体操教程一堆,看源码类型定义都要先看个半天 |
10
wu67 2023-03-02 08:48:01 +08:00
typeof isarray 确实有点烦, js 本身类型就是个大坑. 不然也不会催生出 ts
至于循环, 真的很考验经验. for of 遍历属性, for in 遍历 key, filter 过滤, map 是模按式生成新数组, reduce 是‘累计’, some 和 every 是其实就是 与或运算. 当然你都不喜欢, 你可以用 for( let x=0; x < 100;) 这些写法, 又没人强迫必须要用数组方法. 除非没得选, 不然隐式转换是真的不应该去用, 用的都应该拖出去打. pop push splice 一般是变异方法, 会改变原值. 而 slice \ for of 这些是不改变原值的. 在 for of 里面改变引用类型数据的值的, 都应该拖出去打, 直接增加了心智负担. css, 一言难尽, 建议 flex 一把梭 + border-box 指哪打哪. |
11
makelove 2023-03-02 09:04:43 +08:00
我怎么觉得 js 在语言里算极简,甚至比 python 这种都简单很多
|
12
jones2000 2023-03-02 09:04:47 +08:00
js 挺好的,没有什么框架的限制, 想怎么写就怎么写。关键是一个记事本+浏览器就可以搞定开发和调试多方便。
|
13
yaphets666 2023-03-02 09:11:22 +08:00
向下转型 向上转型那些不是更恶心么
|
14
unt OP @wu67 就说循环,每种方法基本的功能和用法当然是知道的。 但是面试时可能会问:那 for in 能遍历数组吗,for of 能遍历对象吗,怎么让 for of 能够遍历对象呢,这时候就顺势谈到了 Set 和 Map 和迭代器,迭代器可能会谈到 Generator 。然后 for in 就会问到可枚举,描述符属性,原型链。。。
|
15
unt OP @Leviathann 我们对这句话的理解上有差别吧。 我的理解是:用极少的语言特性,打通这些特性间的链路,使用这些最基础的单元,自由组合,实现基本上所有的功能。而不是语言本身来帮忙封装一大堆方法,一种场景一个方法。
|
16
DICK23 2023-03-02 09:44:47 +08:00
这些都是基础吧,而且 5 年经验的话也不至于问这些内容,除非面的岗位比较基础
|
18
yunyuyuan 2023-03-02 09:47:05 +08:00
5 年经验面试被问这些,面试官就不专业。你列的都是基础中的基础,而且我觉得并没有到点子上。
1. 检测 primitive 用 typeof ,检测是否包含原型链用 instanceof ,toString.call 算奇淫巧技,看看就行。Array.isArray 这也是基础。 2. 如果你真的认为 for 一把梭比 some find filter reduce 好,你可能水平真的不咋样。 3. 这个和 python 的缩进,go 的 if err != nil 一样,不做解释。 4. 展开操作符也是基本知识,很容易理解啊,我一般用 lodash 去重。 5. 如果这都记不住,那你写其他语言岂不是更痛苦? js 的“标准库”算很少了。 我觉得 js 的负担在于框架太多太杂,没有一致的标准 /编码理念 |
19
unt OP @yunyuyuan 1. 我都知道; 2. 工作中这些我都经常用,for 不怎么用; 3. 。。。4. 我知道,我经常用; 5. 我知道
|
20
yunyuyuan 2023-03-02 10:01:02 +08:00
|
21
byte10 2023-03-02 15:11:24 +08:00
取最小集合去完成你的事情就可以了,管他啥 for in ,for of ,你记住一个就可以啦。。js 我是比较喜欢的,随便写 ,写的工具利器。
|