為什麼JavaScript沒有計畫支援可選的強型別?

時間 2021-05-12 13:16:17

1樓:怡和

我認為加入強型別支援對乙個指令碼語言來說並沒有太多好處。js指令碼語言的設計初衷就是簡單靈活,加入強型別是犧牲了他的靈活性,得不償失。

當然加入強型別也有好處,提高效率,便於除錯,但這些其實有很多方案可以去實現,現在js已經算是乙個前端領域的「底層語言」,在js之上已經有非常豐富的第三方方案來解決專案種各種問題,使用者只需要根據自己的需求取捨即可,高度靈活。

2樓:貘吃饃香

路過提一嘴2008 年 ES4 被廢棄之前,是有計畫支援強型別的,畢竟 ES4 + E4X 基本就是False AS3 的那套。

但是由於 Adobe 與某瀏覽器廠商的利zheng益zhi原因被乾掉了

記得 07 年底的時候,微軟IE的平台設計師內誰來著(忘了名兒了),先跟 IE 團隊 Blog 還是哪兒來著率先吐槽新的 JS 規範應該 web 相容,不相容的顛覆性全新特性什麼應該最先由新語言承擔。

後來忘了 Moz 還是 Adobe 的誰接茬噴回去來著。

08年的時候,由於廠商阻力吧,就黃了。

之後到現在基本上還是沿著相容路子走的設計,除了強型別,原 ES4 的部分特性逐步在 ES5+ 之而後被搬上現行標準。

3樓:「已登出」

我們可以強行在 js 中加入 'use ml' 關鍵字,然後把所有 js 出來的型別寫成 dyn 並且支援 Serialize dyn 然後根據 Serialize 寫出 cast :: Serialize a, Serialize b=> a-> Maybe b

為什麼JavaScript裡面typeof null 的值是 object ?

自由的囚徒 這是JS語言本身的乙個bug。不同的物件在底層都表示為二進位制,在js中二進位制前三位都為0的話會被判斷為object型別,null的二進位制表示全是0,自然前三位也是0,所以執行typeof時返回 object 阿布丁 說句人話,不說書裡的鬼話 因為 所有引用型別的名字是乙個指標,指的...

你為什麼選擇 JavaScript ?

牆外一枝花 多年前,面試的時候,一邊是三年.net 給你6k,一邊是3個月js也是6k,所以沒那麼多為什麼,最初的選擇源於人性的最基本訴求,溫飽。 題葉 最開始上網,沒人教程式設計,我唯一能折騰的東西只有瀏覽器,高中用 GreenBrowser 替換了 IE 自以為很開心,後來知道 Opera,最後...

JavaScript 為什麼要把 this 暴露出來

孫竟 這是動態語言帶來的靈活性啊,Python 也是這樣。在不需要靈活性的地方,你完全可以不用 this。可是你用到了,就說明你確實需要。舉例來說,你怎麼在 C 裡傳遞乙個物件的方法?想想都覺得很麻煩。而 JS 可以把乙個函式和物件通過 Function.prototype.bind 繫結在一起 即...