推 lturtsamuel: 多寫幾個toString vs 被奇怪的隱式轉型嚇到 我選前者11/03 12:55
※ 編輯: kusakawa (1.169.214.175 臺灣), 11/03/2020 12:59:08
如果每個都要寫 toString 的話,那好像還是轉到 strong-typed 比較快 XD,哈哈,
JavaScript 的隱含轉型其實並不奇怪,數來數去也就 ToString, ToNumber, ToBoolean
這幾個比較主要而已。
※ 編輯: kusakawa (1.169.214.175 臺灣), 11/03/2020 13:06:40
→ jobintan: TypeScript表示安定…11/03 13:14
→ strlen: 看這些spec一點意義也沒有 浪費時間記那些例外和隱含轉型 11/03 13:43
→ strlen: 還不如強型別 把心思花在商業邏輯上11/03 13:43
哎呀我只是寫程式的,我們關注的點不一樣而已啦。
推 ChangeXD: 菜鳥如我看你們爭論的時候拿筆記一直抄11/03 13:58
推 winniekuma: 拿spec當大招放真的挺趣味 11/03 13:58
winnie 大,我的意思不是把 spec 丟在桌上然後指責大家亂罵 JavaScript,
我覺得大家好像買了 JavaScript 牌的電器,然後用過去使用他牌電器的經驗來操作它,
雖然它會動,但一定還是覺得哪裡怪怪的,怎麼預期行為跟過去的經驗抵觸。
其實這個問題可以從「看說明書」去解決,Spec 裡面不只記載演算步驟,時常也有記載
為什麼要這樣做的 note。
※ 編輯: kusakawa (1.169.214.175 臺灣), 11/03/2020 14:07:14
推 vi000246: "你只要熟悉它的規則,就能減少冗長的程式碼"11/03 14:24
→ vi000246: 換句話說 很容易接手前人寫的爛扣 或是合作的人寫爛扣11/03 14:24
不遵守規範的 code 淪為爛 code 只是時間問題,沒經過 PEP 8 跟 LINT 的 Python cod
e 一樣很糟,無論什麼程式語言都需要規範,都需要 pattern。
推 WTFCN: 推樓上,TS再好都還是會有人把變數通通宣告為any 11/03 14:31
※ 編輯: kusakawa (1.169.214.175 臺灣), 11/03/2020 14:36:09
→ cha122977: 雖然+/-的不同是因為字串能用+來接 但這設計真的很糟 11/03 15:02
→ ericrobin: 就是很多人覺得這些規則鳥才說他缺陷阿= = 11/03 15:02
→ cha122977: 因為直覺上會認為+-*/會有類似行為 11/03 15:03
→ cha122977: 但實際上+就是一個特例 所以才要特別寫在spec解釋 11/03 15:03
→ cha122977: 別的語言通常直接讓-*/不能用在字串 就省去這方面問題 11/03 15:04
推 cooper6334: 這些楣楣角角就是坑阿, 11/03 15:56
→ askaleroux: 人家+-沒問題 就你js問題最多 這不就坑? 11/03 18:51
推 alihue: 算把 spec 寫爛了 11/03 18:53
推 wulouise: 一堆方便帶來不方便 11/03 19:02
→ vi000246: 把bug寫進spec就變feature了 11/03 19:05
推 iq1000x: 可是true+true+true===3 11/03 19:39
推 panbanana: moment.js 現在已經.... 11/03 20:12
→ dreamnook: 現在都不太用moment.js了 太肥… 11/03 20:42
推 handsomeburg: 推推,用弱型別語言嫌它不是強型別是怎樣? 11/03 20:48
推 netburst: 11/03 22:28
噓 CoNsTaR: 看到“例外處理”、“隱含轉型”什麼的還講得頭頭是道必 11/03 23:08
→ CoNsTaR: 須噓 11/03 23:08
推 opallin: 不用解釋吧 反正拿不拿spec出來講都會有人酸 11/03 23:10
噓 CoNsTaR: 弱型別、OO 到 2020 還存在本身就是一個 shame 11/03 23:11
→ crazylunar: 感覺就是我坑都寫在spec了,摔進去就不干我的事一樣 11/04 00:20
推 newhandfun: 把bug寫進spec就變feature了+1 11/04 00:54
噓 s06yji3: 我也覺得是把缺陷寫進spec當做features... 11/04 01:07
推 internetms52: 推前幾樓,把bug寫進spec... 11/04 08:11
推 brianhsu: 把缺陷寫近 SPEC,他還是缺陷。C 語言用非零和零當作 Tr 11/04 10:31
→ brianhsu: ue / False 也是在 SPEC 內,但他一樣是缺陷。 11/04 10:31
→ EPGo: moment.js 已停止更新,很久前就改用輕量的 day.js 11/04 13:24
→ strlen: It's not a bug; it's feature. 11/04 13:37
→ superpandal: 確實不難了解的東西 11/04 16:48
→ wulouise: 看起來JS比C++好太多了,C++都馬是說這個UB我不管 11/04 20:22
→ wulouise: JS還有定義這是spec,感恩 11/04 20:23
→ superpandal: 看來確實很多c/c++的會用js 現在js效能也不錯 11/04 21:46
→ viper9709: 推一樓 11/05 00:47
推 abraxas: 雖然說明書可以解決問題,但不是只要寫到說明書就合理了 11/05 12:38
推 su321752a: 只能推了 11/08 18:50