Soft_Job 板


LINE

https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1602985969.A.989.html 看了这篇文发现有不少人讨厌 JavaScript 而我自己写JavaScript 觉得写起来很舒服 所以我想请大家提出 JavaScript 哪里烂 我会试着反驳 互相交流 首先我要说 JavasSript 又称做 ECMAScript 在近几年演化的很快 例如 es6 增加 let, const语法 避免了 var的麻烦 promise, async await 的出现 避免了 callback hell js + JSDoc + tsc --checkJS 则是提供了强型别语言的好处 例如 type checking, documentation, 避免null dereference, code navigation 等等 而维护程式码品质的工具 eslint, prettier 分别是 linter 和 code formatter 可以避免许多问题 而 commonjs, es module 则是补上了模组功能 在这些东西出现前 js的确是很难用 所以请大家把讨论范围限定在现代的JavaScript --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 27.242.67.104 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1604331400.A.F6D.html ※ 编辑: keev (27.242.67.104 台湾), 11/02/2020 23:38:07
1F:推 er230059: this都到处乱指XD 11/02 23:57
2F:→ er230059: 其实是个人常常脑洞 settimeout忘记this会被改QQ 11/02 23:57
3F:→ stopcrying: async/await 只能用在 promise 上,不能用在其他类似 11/03 00:03
4F:→ stopcrying: 的结构上有点可惜 11/03 00:03
5F:→ JingJing00: 能动就好烂code数量:js第一php第二python急追中 11/03 00:04
6F:推 vi000246: 还要学打包工具 好麻烦 11/03 00:22
7F:推 s06yji3: 要打包真的好麻烦,参数也太多太细。 11/03 00:31
8F:推 fiiox3: 打包真的.....从来不觉得自己懂过XD 11/03 00:34
9F:→ forewero: 不就是因为难用才那麽多检查工具?typeof nan = num... 11/03 00:51
NaN 是 IEEE 754 (浮点数标准) 定义的一个数 在 java 和 go里 NaN 的型别也是浮点数 而 js的 number就是 float64 这样来看 typeof NaN === "number" 算是合理八?
10F:→ newhandfun: https://pbs.twimg.com/media/Dg99SCEW4AAs8Nc?format 11/03 00:56
11F:→ newhandfun: =jpg 11/03 00:56
※ 编辑: keev (36.231.154.156 台湾), 11/03/2020 01:29:36
12F:推 GLaDOS1105: 要学的东西一堆 动不动就大更新 11/03 01:17
13F:推 EPGo: typeof [] 11/03 01:28
14F:推 hermes018: 喜欢 JavaScript,不过也没写过其他语言,也无法比较 11/03 01:44
15F:推 lturtsamuel: 有没有看过this用bind绑定成乱七八糟的值 你想要绑正 11/03 01:52
16F:→ lturtsamuel: 确的反而出bug 11/03 01:52
17F:推 iq1000x: 要学文内那麽多东西就是缺点啊 11/03 02:04
18F:推 lturtsamuel: 文内那些东西还是很简单的 那些也叫难你要c++工程师 11/03 02:07
19F:→ lturtsamuel: 怎麽办 11/03 02:07
20F:→ cha122977: 个人观点 难学的点是很多东西不可预期 11/03 02:08
21F:→ cha122977: this很难判断现在是谁 用+连的东西放前後不同结果 11/03 02:09
22F:推 SHANGOYANYI: 太多流派造成选择障碍症 看那精美的jQuery/ng/react/ 11/03 02:12
23F:→ SHANGOYANYI: vue/vanilla以及各自衍生的套件跟生态系... 11/03 02:12
24F:→ cha122977: 很多东西用到要写个小程式测 然後几周後就忘了 11/03 02:12
25F:→ cha122977: 搞不清楚它的逻辑脉络 搞的像要背一堆例外情况… 11/03 02:13
26F:推 tsao1211: 因为大部分人js都不紮实才觉得难用 11/03 03:01
27F:推 imega: 严格模式可避免this乱指 11/03 05:32
28F:推 windclara: 有时忘记写await,输出不如预期花很多时间Debug才想到= 11/03 07:33
29F:→ windclara: = 11/03 07:33
30F:推 brianhsu: 浓缩成一句话就是例外太多,行为不一致吧! 11/03 07:36
31F:推 JavaScript: 好啦! 我就是难搞...哪一次不搞滴 11/03 07:50
32F:推 alihue: 天生的限制导致要各种第三方工具来打包和协助管理 11/03 07:50
33F:推 alihue: 後天用第三方套件软体协助开发,跟天生就内建的方便程度 11/03 07:53
34F:→ alihue: 差太多了。 11/03 07:53
35F:推 johnny055279: 就是烂才一堆框架跟延伸模组出现啊?你看看python, 11/03 08:43
36F:→ johnny055279: 嘻嘻 11/03 08:43
37F:推 JavaScript: 楼上想法负面,虽然难精,但是因大家喜爱才会延伸出许 11/03 08:51
38F:→ JavaScript: 套件出来才对怎麽可以说是烂...啧啧 11/03 08:51
39F:→ paint: 是不是该来注册一下ECMAScript惹 11/03 08:58
40F:→ godddddd: 名称比java长 11/03 09:05
41F:→ adsl12367: 长出太多奇奇怪怪的东西了 11/03 09:21
42F:→ ssccg: java不会运算一下自己变成NaN,会是exception,NaN只是个常 11/03 09:39
43F:→ ssccg: 数,跟javascript会自己冒出NaN根本不一样 11/03 09:39
44F:→ askaleroux: 套件太多派系太多 动不动就大改 第三方烂掉的套件超 11/03 09:42
45F:→ askaleroux: 多 11/03 09:42
46F:→ askaleroux: 写过Go现在去写Js感觉真是不舒服 11/03 09:45
47F:推 abc0922001: 1+1=11 11/03 10:06
48F:嘘 alongalone: 我是会推荐你去写看看 c, C++, C# 跟 java啦.. 11/03 10:32
49F:推 alihue: 忘了还有 node module 黑洞,这根本是语言缺陷导致的 11/03 10:50
50F:→ odahawk: 使用浮点数的时候小数点以下是零的话就自动转整数 11/03 11:07
51F:推 aidansky0989: js不错,比Java好写多了 11/03 11:16
52F:推 satanbaby: 语法再怎麽甜 也终究是JS 11/03 11:22
53F:推 windclara: https://i.redd.it/rz3o1yibnc511.png 11/03 11:42
54F:推 Gaitz: 太自由 有历史包袱 11/03 11:53
※ 编辑: keev (36.231.154.156 台湾), 11/03/2020 11:57:38
55F:→ johnny055279: 现在是因为被定型了,重新开始谁还想用JS 11/03 12:03
56F:→ johnny055279: 拜框架所赐现在才比较没这麽多莫名其妙的问题存在 11/03 12:07
57F:推 sniper2824: 笑死== 11/03 13:05
58F:推 sky40280: 你都说啦,设计不良要靠一堆新的规范来强化 11/03 14:13
59F:推 jinmin88: 虽然有async await, 但是一堆旧的lib没promise版本阿 11/03 15:48
60F:→ Darkword1987: 不是讨厌JS 是讨厌csfgsj 11/03 16:32
61F:→ lachtchlee: 人家就是把它设计为弱型别的语言 免得在网络上一再撞 11/03 16:50
62F:→ lachtchlee: 墙喊暂停 它原本就不是强型别的语言(这不是它的错) 大 11/03 16:54
63F:→ lachtchlee: 可不必拿它跟ts比 这只是子集 超集的关系而已 11/03 16:57
64F:推 opallin: NaN一直代表invalid number吧 是很多人会错意以为是什麽n 11/03 17:16
65F:→ opallin: on-exist 11/03 17:16
66F:→ atst2: NaN是Not a Number 的缩写。 11/03 18:04
67F:→ atst2: type of NaN == “number” 不觉得语意上就有问题吗? 11/03 18:05
68F:→ askaleroux: 然後很多是typescript帮js擦屁股还有vscode的extensi 11/03 18:48
69F:→ askaleroux: on 你是多菜觉得linter formatter内建在js 11/03 18:48
70F:推 jj0321: 搜寻 javascript meme 那些就是我的困扰 11/03 19:58
71F:推 samioplg: 今天写ng event.target.value帮我把number 转成string 11/03 20:08
72F:→ samioplg: 找了半小时,干 11/03 20:08
73F:推 panbanana: this都乱指,arrow function 跟一般的function 又不一 11/03 20:08
74F:→ panbanana: 样了 11/03 20:08
75F:嘘 MyNion: JavaScript就是个拉基语言,会觉得它有趣或优美的人 11/03 21:54
76F:→ MyNion: 大概没有接触过其他有「严谨逻辑」的语言 11/03 21:54
77F:推 chatnoir: this 没有乱指, 是你没有好好了解过他.. 11/03 22:23
78F:→ netburst: js不错,比Java好写多了 11/03 22:23
79F:推 CoNsTaR: @某L 就是因为弱型别才会在执行期“撞墙喊停”吧 11/03 22:40
80F:→ CoNsTaR: 你看过哪个 Haskell 或 Agda 程式跑到一半跟你讲发生“ 11/03 22:40
81F:→ CoNsTaR: 例外”的?快笑死 11/03 22:40
82F:→ CoNsTaR: 例外处理本身就是个弱智的想法 11/03 22:40
83F:→ CoNsTaR: 在电脑的世界所有的值都是可预期的,才没有所谓的“例外 11/03 22:40
84F:→ CoNsTaR: ” 11/03 22:40
85F:→ CoNsTaR: 会有例外除非你 RAM 满了,CPU 烧掉了,硬碟故障了... 11/03 22:40
86F:推 CoNsTaR: @某 opa,所以 NaN 到底是不是 Number? 11/03 22:48
87F:→ CoNsTaR: 如果一个函数跟你讲它会回传给你一个数字,结果给你一个 11/03 22:48
88F:→ CoNsTaR: NaN 你有什麽感想 XDDD 11/03 22:48
89F:→ CoNsTaR: 干嘛不一开始就好好写好 f : Num n Maybe n 11/03 22:48
90F:→ CoNsTaR: 或 f() -> Option<N> where N: Num 呢? 11/03 22:48
91F:推 CoNsTaR: * f : Num n => Maybe n 11/03 22:59
92F:→ CoNsTaR: 不能用 unicode 符号? 11/03 22:59
93F:→ x246libra: JS 太自由 没规范 动态又弱型别 觉得好写的 不是高手 11/03 23:13
94F:→ x246libra: 就是新手 一般程式的程度 都会觉得很多莫名例外要背.. 11/03 23:14
95F:推 guitarcho: Swift 欢迎你 11/04 03:19
96F:推 oao1002: 求别更新了...老子学不动了... 11/04 07:42
97F:推 max241: 看完推文 感觉就是常见的不懂xxx 就说xxx不好用 难用 ㄏㄏ 11/04 10:06
98F:→ strlen: 难用就是难用 懂了还是觉得难用 垃圾还有人要护航 今天是 11/04 13:38
99F:→ strlen: 没办法大家被逼着用 不然满大街的JS加强版是哪来的?不就 11/04 13:39
100F:→ strlen: 是JS太垃圾太难用? 11/04 13:39
101F:→ dreamnook: js的优势是跑在browser上 很会能看到效果 11/04 14:55
102F:→ dreamnook: 然後就(误 11/04 14:55
103F:推 dream1124: 推 strlen。说出我发文的心情。北七的东西就别再护航了 11/04 15:50
104F:→ superpandal: 很少 个人不喜欢类型 有了类型就要抛错 方程处理数据 11/04 16:18
105F:→ superpandal: 足够了 能够讲的大概就写起来太丑 不过这还是得看人 11/04 16:19
106F:→ nh60211as: 不是吧,没有型别就不会有型别错误的意思吗 11/04 16:21
107F:→ superpandal: 当然会有错 但你需要定位所有错误的原因吗? haha 11/04 16:30
108F:推 v7q4: 纯Javascript没问题,有问题的是那些有的没的框架 11/04 19:29
109F:→ dream1124: 要不要抛错是可以透过语言的规格设计去改变做法的 11/04 19:45
110F:→ dream1124: 但一个高阶语言一开始不提供机制给人宣告型态 11/04 19:46
111F:→ dream1124: 後面再用文件或注解去补往往就悲剧了 11/04 19:47
112F:→ dream1124: 一不小心就是整个社群一堆杂七杂八难懂的标准 11/04 19:47
113F:→ dream1124: 更别提你不想安排所有错误的处理对策不代表一个都不做 11/04 19:49
114F:→ dream1124: 更不代表像 js 那样还会自动帮你转型或进行一堆运算 11/04 19:50
115F:→ dream1124: 这麽不爱型态怎麽不去写 Assembly 啊 11/04 19:51
116F:→ superpandal: 给你型态 会写的如同乱码的一样很难懂 方不方便维护 11/04 21:42
117F:→ superpandal: 与有没有型态根本是两件事情 确实有错误需要处理 但 11/04 21:42
118F:→ superpandal: 主要错误才是重点吧 只能说这是每个人的选择 11/04 21:43
119F:推 hanklgs: null >= 0 11/04 21:58
120F:嘘 ruthertw: js抄书随便乱兜,就可以担任总经理,你说这语言嘿 11/05 08:40
121F:嘘 ruthertw: 台湾众多小型公司惯老板超爱js,觉得此语言万能 11/05 08:42
122F:→ strlen: 就是纯JS问题一大堆 才发明出那些有的没的框架吧? 11/05 23:16
123F:推 CoNsTaR: @superpandal 没给型态才像乱码好吗 11/06 08:49
124F:→ CoNsTaR: f = \x y. x $ map g y 11/06 08:49
125F:→ CoNsTaR: 请问你要花多少时间确认怎麽用 f 和 f 回传的东西? 11/06 08:49
126F:→ CoNsTaR: 或甚至是确认上述程式是不是正确的? 11/06 08:49
127F:→ CoNsTaR: 如果我告诉你它的 type 是 11/06 08:49
128F:→ CoNsTaR: f : (List String -> String) -> List Integer -> String 11/06 08:49
129F:→ CoNsTaR: 不用两秒,你大概连 g 是做什麽的都猜到了吧 11/06 08:49
130F:→ superpandal: 这是你定的? @_@ 11/06 14:53
131F:→ superpandal: 只能说这就是人生 总经理... 好遥远的位置 11/06 14:54
132F:→ ssdoz2sk: NaN === NaN // false | WTF? 11/10 13:08
133F:推 dryadd44651: 很简单的道理我写python可以完全专心在我要做的事情 11/19 14:58
134F:→ dryadd44651: 上 11/19 14:58
135F:→ dryadd44651: js注意力都在找bug 跟个白痴一样 11/19 14:58
136F:→ dryadd44651: 为什麽要浪费生命 11/19 14:58
137F:推 justben: 回到这篇创始战文打个卡 11/23 16:53
138F:推 imjeffreylee: Js bug超多的啊... 01/09 21:42







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP