來自朋友的半夜 Bug,爲啥 「1_000_000 === 1000000」 爲 true!

點贊再看,微信搜索 大遷世界,B站關注 前端小智這個沒有大廠背景,但有着一股向上積極心態人。本文 GitHub https://github.com/qq44924588... 上已經收錄,文章的已分類,也整理了不少個人文檔,和教程資料。

原由

一大早剛起牀,朋友就直接丟來一個她在項目中遇到的 Bug,以下所示:javascript

image.png

我立刻從牀上躺下去,打開電腦,輸入驗證一下:前端

image.png

我擦勒,我一開始猜測這個應該爲了讓數字更具可讀性,經過_下劃線來分割數字,瀏覽器知道這種狀況,因此知道咱們想表達的意思。java

我立刻想到是否是逗號也能夠呢,立刻跟朋友說,你用逗號試試,結果應該也是同樣,不是,你打我幾巴掌。因而,朋友丟了一張圖給我:node

image.png

臉一邊歪的我,開始陷入了深思,無形裝 X,最爲致命,我默默的打開谷歌,開始尋找答案,正文開始。git

尋找答案

「1_000_000 === 1000000」 的結果爲 true,這是由於它是一個數字分隔符規範(Numeric Separators),容許在數字值中使用下劃線。github

關於 Numeric Separators 可點擊 https://github.com/tc39/propo... 自行閱讀。

若是咱們嘗試寫十億這樣的值,能夠經過用下劃線分隔數字來提升可讀性。面試

let a = 1000000000000; 
let b = 1_000_000_000_000; 
console.log(a===b); // true

數字分隔符規範(Numeric Separators)不只支持整數,還支持各類數字格式。promise

// Decimal 
let dec = 1_000_000.220_720; 

// Binary 
let bin = 0b1010_0001_1000_0101; 

// Octal 
let oct = 0o1234_5670; 

// Hexadecimal 
let hex = 0xA0_B0_C0; 


// BigInt 
let bint = 9_223_372_036_854_775_807n;

代碼部署後可能存在的BUG無法實時知道,過後爲了解決這些BUG,花了大量的時間進行log 調試,這邊順便給你們推薦一個好用的BUG監控工具 Fundebug瀏覽器

原文:https://adrianmejia.com/promises-tutorial-concurrency-in-javascript-node/微信

參考:

https://github.com/tc39/proposal-numeric-separator

https://v8.dev/features/numeric-separators

https://qiita.com/uhyo/items/4586dbc347d6985b44ef

交流

文章每週持續更新,能夠微信搜索「 大遷世界 」第一時間閱讀和催更(比博客早一到兩篇喲),本文 GitHub https://github.com/qq449245884/xiaozhi 已經收錄,整理了不少個人文檔,歡迎Star和完善,你們面試能夠參照考點複習,另外關注公衆號,後臺回覆福利,便可看到福利,你懂的。

相關文章
相關標籤/搜索