在项目浏览器兼容测试中,发现有很多兼容性的问题,大多数是用户较少的浏览器,如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
暂无评论内容