JSON.parse转化:如何使得一个字符串类型‘false‘等于布尔类型的false(使‘1‘===1?成立的2种处理办法,与JSON.stringify的)
一、 如何处理一个字符串类型’false’等于布尔类型的false?
console.log('false'==false);
运行结果是false,说明不成立
console.log(Boolean('false'));
运行结果是true,说明’false’就是个字符串,字符串转化成布尔类型就是true
在js逻辑中,往往喜欢用let flag = 'false';if(flag){}
去做判断,但是很显然这个判断不成立,不会执行里面的逻辑
处理方式:
推荐 使用JSON.parse(‘false’),JSON.parse的作用是将字符串类型转化为一个JavaScript可识别的json对象
二、 如何处理一个字符串类型’1’等于数字类型的1?
处理方式:
- 推荐 使用JSON.parse:JSON.parse(‘1’)===1。‘1’==1这种情况在大部分情况下是成立的,但是不排除特殊情况,比如nvue开发app中就不成立,所以最保险的就是转换成同类型
- 推荐 使用‘+’号自动转换:+‘1’===1
三、 JSON.parse()其他使用场景,及注意的坑?
- 使用JSON.parse转换一个字符串类型的对象:
eg:let obj = ‘{“a”:1,“b”:2}’,这种就可以使用JSON.parse转换成json对象,只有转换了才能使用obj.a。 - 使用JSON.parse转换注意的对象要是单引号套双引号的方式:eg:let obj = “{‘a’:1,‘b’:2}”,这种转换JSON.parse(obj)会报错:
所以JSON.parse转换总体是单引号套双引号的方式
四、 JSON.parse()与JSON.stringify()的关系?
JSON.parse()与JSON.stringify()是相反的关系,前者将对象转化成json字符串,后者将字符串转化成json对象。这两种运用都比较广泛。