关于javascript:来自朋友的半夜-Bug为啥-1000000-1000000-为-true

4次阅读

共计 1250 个字符,预计需要花费 4 分钟才能阅读完成。

点赞再看 ,微信搜寻【大迁世界】,B 站关注【前端小智】 这个没有大厂背景,但有着一股向上踊跃心态人。本文 GitHub https://github.com/qq44924588… 上曾经收录,文章的已分类,也整顿了很多我的文档,和教程材料。

起因

一大早刚起床,敌人就间接丢来一个她在我的项目中遇到的 Bug,如下所示:

我马上从床上躺下去,关上电脑,输出验证一下:

我擦勒,我一开始猜测这个应该为了让数字更具可读性,通过_下划线来宰割数字,浏览器晓得这种状况,所以晓得咱们想表白的意思。

我马上想到是不是逗号也能够呢,马上跟敌人说,你用逗号试试,后果应该也是一样,不是,你打我几巴掌。于是,敌人丢了一张图给我:

脸一边歪的我,开始陷入了沉思,有形装 X,最为致命,我默默的关上谷歌,开始寻找答案,注释开始。

寻找答案

“1_000_000 === 1000000” 的后果为 true,这是因为它是一个 数字分隔符标准(Numeric Separators),容许在数字值中应用下划线。

对于 Numeric Separators 可点击 https://github.com/tc39/propo… 自行浏览。

如果咱们尝试写十亿这样的值,能够通过用下划线分隔数字来进步可读性。

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

数字分隔符标准 (Numeric Separators) 不仅反对整数,还反对各种数字格局。

// 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 和欠缺,大家面试能够参照考点温习,另外关注公众号,后盾回复 福利,即可看到福利,你懂的。

正文完
 0