工作踩坑史-为了浏览器的兼容性,慎用toLocaleString()!

52 阅读1分钟

前言

在一次业务开发中,我用360急速浏览打开了页面,结果却被报错给整傻了眼!

打开控制台却看到了诡异的一幕,通过打印却看到了诡异的一幕,toLocaleString()执行后的时间居然带上了中文!当我疑惑为何chrome浏览器上都没有报错时,却发现chrome的控制台里打出的时间却安然无恙。

好吧,不管你是什么妖魔鬼怪,就让我们去各个浏览器都执行下toLocaleString(),看看你的真面目!

开整

我们让参与测试的几个浏览器都执行如下代码:

let time = new Date()
// 标准时间格式
time.toLocaleString()
// 中国时间格式
time.toLocaleString('zh-cn')
time.toLocaleString('zh-tw')
// 英国时间格式
time.toLocaleString('en-gb')
// 美国时间格式
time.toLocaleString("en-US")

1. 360极速浏览器X

首先堂堂登场的必然是万恶之源,360继续浏览器,就让我们去看看控制台执行这段代码都出现了什么?

image.png

果然,直接执行time.toLocaleString()就出现的中文,导致解析失败代码报错。

附上360极速浏览器的版本~

image.png

2. chrome浏览器

紧接而来的是开发的主力,谷歌浏览器。

image.png

看起来只有在执行time.toLocaleString('zh-tw')时才会出现中文。

chrome浏览器的版本如下:

image.png

3. Edge浏览器

最后来试试青出于蓝而胜于蓝的Edge浏览器吧

image.png

和Edge浏览器保持一致,看来异端只有360极速浏览器呀?

image.png