2024年9月1日 星期日

javascript prototype chain

Function 是基本類,綴遐開始生出 Func(),繼來生出 func,這已經是物件了。Function.prototype等於是Function.__proto__,型態是function。生出來的Func()的prototype其實就是物件型態 object。Function.prototype內定是{ } function,而且無法度修改。Func.prototype是程式設計主要目的,欲修改的所在。Func.__proto__是指向來源,作用會使改。Function.__proto__內定是空 function { },內面的 .__proto__ 指向 null prototype,閣下一層才是null,攏總下跳 3 層才到 null。Object.__proto__ 等於是 Function.prototype,嘛是function 型態,所以Object.prototype 是 Function.prototype 生出來吔是物件而且無法度修改,相仝跳 3 層才到 null。Object.constructor === Function ,答案是 true ,有 .constructor 才會使用 new 產生後代,佇Object 有用 new 或者無根本無差。

2024年3月17日 星期日

C^2 複數2維向量映射巴拿赫球面

 巴拿赫球面是將2x1維度複數行向量映射到半徑為1的過程方法,條件是二個複數的長度平方和等於1,之所以加這條件是球是三維空間自由度,二個複數有4個自由度,有了這條件等於減掉一個自由度,這樣就有機會找出一對一的關係,也確實如此。量子電腦程式設計課的量子態由這樣的矩陣來代表,老師的教學過程跳過這一步,直接將結果做驗證,當然全部符合,學生學到的只是熟悉計算過程,對於量子態為什麼對應到球面特殊點仍是一頭霧水。找了許久,補充說明:

先將二個複數係數訂為a1, a2, b1, b2,即 a = a1 + a2*i , b = b1 + b2*i 。因上述條件,<a,a> + <b,b> = 1,且球座標用r, theta, phi 做變數,r 又是1 ,所以剩二個角度完全決定座標點坐落何方。其餘過程大學座標對應過程你會的。引入theta,配合尤拉公式,cos(theta) + i * sin(theta),將 a 長度對應至z,b對應至xy平面的投影。自然b的實部應至x,虛部對應至y,這樣就會是半球和複數2x1維的易理解的對應。但是有一缺憾,就是赤道所有點都代表同一個複數基態 |1>,這缺憾是數學物理學家無法容忍的,於是想出了將半球帳篷繼續下拉變圓球,那麼赤道又漸漸縮小到南廻歸線最終大家匯集至南極,這時又縮回一點了,成為完美對應。

2023年12月26日 星期二

編譯器是軟體工程上核心的科目

 以早對編譯器的理解伊是真深的軟體技術,講是技術是無了解這門課的重要性,應該講是軟體的核心才著。知影編譯有 2 階段,第 1 階段是語法分析起語法樹,第 2 階段語意分析看電腦聽有伊的意思無。彼時陣毋知attribute grammar,修了這門課才知影屬性文法會使嵌入cfg 規則內面,佮語法分析作伙做產生基本語意。進一步的語意無法度對bison 產生出來,也就是干焦走一遍樹仔無法度處理就著。因為編譯器是產生程式碼,所以佇程式碼執行的時才提著的資料是無法度佇編譯第二階段創掉吔,一定愛佇第二階段產生的程式碼,算好路踅斡,執行的時才會照起工。斟酌講就是無法度第二階段產生程式碼閣將結果囥入去樹仔內面,因為程式碼愛執行才提著資料嘛。所以難就難佇遮,前後的邏輯關係拂袂清楚就永遠無法度突破。好課程就是有辦法予你理解關鍵點,若像水道水仝款,水道頭愛有拍開,水才有法度一關過一關到需要的所在。這馬AI真夯,其實電腦運作是deterministic,只是資料量太大,連人都無法度全面理解可能結果,變作AI是烏箱的感覺,人無法度完全控制就是按呢來吔!

2023年6月17日 星期六

小小web app竟然layout佇windows出問題

 這个小程式 https://sindailo.tw/p/bppm.html 佇 windows 系統有小可問題,載入ㄅㄆㄇ注音符號的時,這字“一”竟然轉90度,但是佇macos, linux, 以及手機攏無問題。佇 edge 瀏覽器嘛相仝轉90度,所以毋是瀏覽器的問題,確定是作業系統的問題。



2023年4月19日 星期三

javascript 確實無啥好了解

 深入javascript的設計系統,發現伊進步誠緊,ES6出來了後 module 就有namespace 分割scope 真清楚囉。export 命令試了結果是干焦會使佇上外口層用,入去第 2 層就袂通過。Function 佮 object 無蓋好分,用Function()定義的變數是 'function',生出來的函數,伊的型態是 'object',有怪奇無?NaN嘛是一粒頭兩粒大,字面的意思是毋是數字,但是真正的意義是無法度表示的數字,親像0/0就傳回true。佇ES6加入Number.isNaN這个函式,予伊明確定佇數字方面較袂膏膏纒。2020 的規範增加 globalThis ,予迒平台的 javascript 有閣較好的相合性。其他猶有足濟的新功能加入等等,予這个語言一直咧進步呢。

2023年1月30日 星期一

javascript 功能大進步

 有一站無去了解javascript 的發展情形了,最近想講前端web設計已經是主流囉,react, vue 誠"夯",應該清楚in的現況如何才著。ecma script引入module 概念,取消 this 指向global scope,這个module本身的scope 叫做 module scope。無仝的 module 田無溝水無流,但是有開放出口 export ,有輸出吔才會當予別个scope提去用。若誠實欲提會著global variable,愛用globalThis.prop才會OK。而且而且...變數宣告分做幾落種,top level 變數干焦2種有註冊佇globalThis的property內面,就是var、function,其他let, const, class攏無喔。遮仔無吔變數用globalThis照常提袂著喔!將scope排列出來:top level, module, function, block ,詳細互相影響的情形值得咱研究。