已決定number類型不允許為null, 打算先做一個JavaScript上的實現.

來源:互聯網
上載者:User

number類型是否允許為null, 的確是很頭疼的問題.

Parallet的目標是指令碼語言. (但它也可預先編譯代碼)

很多指令碼語言的所有類型都允許為null的.

但是為了讓number為null, 要付出的代價實在是太大了.

就按我的經驗, number需要為null的情況, 非常非常少.

如果某些場合需要允許傳遞null, 大不了可以定義參數為var便可.

(雖然那樣的話允許傳遞任何類型)

-

現在DotNet的版本依然有很多工作.

考慮到最近實在太忙, 這樣進展太慢也不是辦法.

-

Parallet要發展起來, 必須需要實在的項目用來支援它.

我是打算實現了DotNet的版本後, 先做一個P2P的項目用來驗證, 然後再推出Web架構.

但是這個過程太漫長了.

現在HTML5太流行, JavaScript的不足和進展緩慢讓人很遺憾..

就在自己的需求角度來看,  值得先在JavaScript上實現Parallet.

在JavaScript上實現Parallet, 將會對Parallet有以下好處:

1 - 可在主流瀏覽器上運行, 用於補充JS的不足, 可建立更強的HTML/AJAX應用. 

2 - 可直接在V8引擎上,配合C/C++, 實現任何非HTML應用.

3 - Parallet它自身不需要考慮JIT. 只需要解釋執行或編譯成JS即可.
    這個特徵可以完全相容不JIT的瀏覽器/裝置, 如果瀏覽器/裝置支援JIT後, Parallet直接得到好處.

4 - 可以用作行動裝置的開發. 例如IPHONE.

只要我自己也用Parallet, 讓它為我帶來好處, 那麼即使它進度再慢, 也不會被放棄掉.

-

現在要實現JS版本的Parallet, 唯一的設計痛點就是同步函數的問題.

Parallet預設是非同步函數. 但是在JS上實現的話, 需要非常緊密地與JS/DOM進行互動.

JS/DOM的函數是同步的. 這樣就有相容性問題. 簡單來說, 就是

btn.onclick=MyParalletFunction;

由於MyParalletFunction是非同步,

那麼MyParalletFunction裡的邏輯, 非同步執行時, onclick的event就會失效.

並且也不能給onclick指定傳回值.

要解決這個問題, 可能需要強制引入關鍵字 synchronous:

synchronous function MyParalletFunction(event)
{

  return false;
}

定義了synchronous的函數, 是'顯式'的, 是不允許調用任何非同步函數的.

它只能調用顯式或隱式的synchronous函數.

如果它調用的隱式synchronous函數, 因為修改代碼自動變成非同步函數,

那麼新的代碼將產生編譯錯誤, 用來保證程式員明確知道如何處理.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.