zl程序教程

您现在的位置是:首页 >  Javascript

当前栏目

Maui Blazor 动态加载JS脚本报错处理记录 -- JS语法:数字分隔符 (1_000_000_000_000) 报错

2023-04-18 15:03:21 时间

BootstrapBlazor 6.11.7 在 maui blazor android 报错临时解决方案,引用工程源码

把文件
srcBootstrapBlazorwwwrootmodulesaseindex.js
里面的
const MAX_UID = 1_000_000
改为
const MAX_UID = 1000000

错误提示

原因,Bootstrap源码使用了新版的js数字分隔符导致.旧版手机浏览器不支持这种新语法

填坑过程

1. 语法:数字分隔符.

为了提高数字文字的可读性,可以使用下划线 (_, U+005F) 作为分隔符:

// 十进制数字中的分隔符

1_000_000_000_000

1_050.95

// 二进制数中的分隔符

0b1010_0001_1000_0101

// 八进制数的分隔符

0o2_2_5_6

// 十六进制数字的分隔符

0xA0_B0_C0

// BigInts 中的分隔符

1_000_000_000_000_000_000_000n

2. 查看js语法浏览器兼容性, 宝藏网站

https://caniuse.com/?search=numeric separators

截图

留意这里

安卓的Chrome和原生浏览器支持的版本从106开始, 2020年9月28日发布,占有率41% , 所以就可以解释到为什么使用到这个语法的脚本都报错了.

而ios13开始就支持了(2019-9-19), 13之前都没支持这种语法.

3. 其他坑, 写惯了 ?? 操作符, 不小心写到js里面,也引发了不大不小的一场故障,我也查了一下,果然锅挺大的

Logical nullish assignment (x ??= y) 支持的浏览器: Chrome for Android 106 (2020-9-28) , iOS safari 14 (2021-8-16)

Nullish coalescing operator (??) 支持的浏览器: Chrome for Android 106 (2020-9-28) , iOS safari 13 (2019-9-19)

技术员的命啊,就是不断进坑爬坑填坑....