对比string类型的值为什么不要使用大小写

个人所属公司服务于某家外企,在老外的领导review代码中,一条代码修改意见是在value值的对比中不要使用大小写
let bool = res.value === 'Yes ' 检视意见是在对比值的时候不要使用大小写
修改成立 (res.value).toUpperCase === 'YES'
为什么在对比value的时候最好不要用大小写,我甚至见过有用汉字做判断对比的
网上查了没查到,特此提问 , 希望大lao给出一手骚回答

统一转为大写比较,为了保证代码的有效性。
对字符串字符大小要求不严格时,这么做为了避免传入的字符串中字符大小不一致情况。
如:输入验证码,只需要输入正确的字符即可,而不用考虑字符的大小写问题,因为逻辑处理时,统一转为大写或者小写进行比较了。

感觉这个还是要区分业务场景

  • 如果不需要精确匹配,统一转成大写或者小写更容易得到结果

  • 如果需要精确匹配,就不能这么转换了,否则会匹配出意想不到的结果

这种要求用户输入的一般统一处理为一种字符类型进行比较,更容错用户输入的情况,因为不确定用户到底是输入小写还是大写,所以兼容的处理就是直接全部转换到一种字符下再比较。

== 属于字符串常量比较,比较的是字符串的地址,所以即使有大小写,也返回true,这样就不会严格相等。在有些要严格区别大小写的业务中,就是一个bug。

主要还是方便对string类型值的对比比较,避免判断时写法易出错或者转化时更好的处理

主要是为为了一种习惯和规范吧! 例如:vuex中的state变量一般都是大写一样的道理

这个地方确实不应该使用大小写,对代码可读性、维护,都有很大帮助。