前端web一些兼容性的写法优化

在项目浏览器兼容测试中,发现有很多兼容性的问题,大多数是用户较少的浏览器,如2345浏览器和32位的360极速兼容性较差,所以总不能人少就不去修复吧,当然IE是个例外(人多我也不去修)。(以下我自己记录,可能还有其他优秀写法欢迎指教)

??

虽然这个号在现在用的比较多,但是兼容性还是不行,所以还是老实用回||但是得注意他们之间的区别

String 中的 replaceAll

在字符串中有两函数,其中 replaceAll 是在 ES12+后加入的,所有有些浏览器并不支持,所以改为 replace 的正则写法兼容性是最好的如

const str = 'Rakers Rakers'
str.replaceAll('Rakers', 'Rakers1024') //Rakers1024 Rakers1024
str.replace(/Rakers/g, 'Rakers1024') //Rakers1024 Rakers1024
//使用正则的replace正则的形式结果是一致的

数组取值

在平常我们遇到可能为空的数组,又想用简单的式子读出来数组内容,又不想他报错,特别是写在前端页面的式子,报错就导致页面都加载不出来了

const arr = Math.random()>0.5?[]:[1]
//一般写法
console.log(arr[0]);//在不知道是否返回空数组的情况下很容易报错
console.log(arr && arr.length>0?arr[0]:undefined);//一般都这么写,但是会导致式子很长,特别是如果数组不是变量,而是很长的对象内函数值就更长了
console.log(arr?.at(0));  //这种应该是最短的了,而且不会报错 但是需要支持ES6语法
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容