iT邦幫忙

2024 iThome 鐵人賽

DAY 8
2
Modern Web

如何詠唱JavaScript的Math咒語系列 第 8

[Day08]-在兩個不同宇宙之間切換的咒語?

  • 分享至 

  • xImage
  •  

昨天理解完抽象操作後是不是覺得規範好讀許多了呢?今天也來看看這些操作裡面有哪些看似特別但之前被無視的內容吧!

一樣看看例子中有什麼特別的:
info_2
他用𝔽()包住了π,那這個𝔽()是啥??點進去看看吧!
image
一句一句嘗試著理解看看吧...

Conversions between mathematical values and Numbers or BigInts are always explicit in this document.

--ECMAScript

「數學值與 ECMAScript 中的NumberBigInts之間的轉換在這個文件中有明確定義。」

喔?看起來 𝔽(x) 應該跟不同形態之間的轉換有關,再接下去看看。

𝔽(x)??

A conversion from a mathematical value or extended mathematical value x to a Number is denoted as "the Number value for x" or 𝔽(x).

--ECMAScript

「一個數學值或是擴展的數學值『x』轉換為 ECMAScript 的 Number 會被記為『xNumber值』或是 𝔽(x)。」

出現啦!!原來 𝔽() 的功用就是將我們平常認知的數學值轉換成 ECMAScript 的Number

繼續往下看。

ℤ(x)??

A conversion from an integer x to a BigInt is denoted as "the BigInt value for x" or ℤ(x).

--ECMAScript

「一個整數『x』轉換成一個BigInt會被記為『xBigInt』或是 ℤ(x)。」

ECMAScript 中的Number如果是一個非常大的數時,在處理上會有精度的問題,所以 ECMAScript 有另一個資料型態BigIng來處理任意精度的整數,就可以避免Number的精度限制導致的問題。

ℝ(x)??

A conversion from a Number or BigInt x to a mathematical value is denoted as "the mathematical value of x", or ℝ(x).

--ECMAScript

「一個 ECMAScript 的NumberBigIntx』轉換成數學值會被記為『x的數學值』或是 ℝ(x)。」

喔?前面有 𝔽(x) 用來把數學值轉換成 ECMAScript 的值,現在講到的 ℝ(x) 是將 ECMAScript 中的值轉換成數學值,某種程度上感覺就像 𝔽(x) 的反向操作呢!


The mathematical value of +0𝔽 and -0𝔽 is the mathematical value 0.

--ECMAScript

「ECMAScript 中的+0𝔽-0𝔽轉成數學值就是數學中的0。」

喔!應該是說 ECMAScript 中有+0-0兩種型態,但在數學值的世界都是0

這句看了大概有 10 分鐘,可能是累了QQ


The mathematical value of non-finite values is not defined.

--ECMAScript

「非有限值在數學值中未定義。」

在 ECMAScript 的世界中非有限值是指Infinity-InfinityNaN,這些值在數學中是沒有具體定義的。


The extended mathematical value of x is the mathematical value of x for finite values, and is +∞ and -∞ for +∞𝔽 and -∞𝔽 respectively; it is not defined for NaN.

--ECMAScript

「當x有限時,x的擴展數學值就是x在數學中的值;ECMAScript 中+∞𝔽-∞𝔽的數學值分別就是+∞-∞;而ECMAScript中NaN的數學值則沒有定義。」

真的講得非常清楚呢!

「數學不會背叛你,數學不會就是不會。」

小結

看來 ECMAScript 中的數值跟真實世界的數學值之間存在著某種差別呢!所以 ECMAScript 明確定義了他自己的數值跟真實數學值之間切換時要如何處理,而 𝔽(x)、ℤ(x)、ℝ(x)等這些則是表示將裡面的值在現實與 ECMAScript 的世界之間做不同意義的切換。了解這些操作之後相信在閱讀規範時就不會對這些奇怪的小東西感到陌生了吧!

參考資料


上一篇
[Day07]-好像顧著唸咒語,忽略了一些細節
下一篇
[Day09]-關於底下那些顏文字
系列文
如何詠唱JavaScript的Math咒語30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
橘子
iT邦新手 4 級 ‧ 2024-09-22 07:48:28

感覺看到一堆顏文字同伴𝔽(`・π・´)

jeremykuo iT邦新手 5 級 ‧ 2024-09-22 15:16:08 檢舉

可以將他們視為同伴,明顯是個狠角色

0
Fang
iT邦新手 5 級 ‧ 2024-09-22 11:22:25

一句一句帶著研究很不錯,有比較不陌生XD

jeremykuo iT邦新手 5 級 ‧ 2024-09-22 15:15:44 檢舉

「大問題拆解成更小的子問題」
怎麼樣,很熟悉吧XDD

0
Chris
iT邦新手 3 級 ‧ 2024-09-23 09:17:45

原來看規範需要學單字

0
Chris
iT邦新手 3 級 ‧ 2024-09-23 09:17:46

原來看規範需要學單字

我要留言

立即登入留言