如何快速、高效的将“false”转换为false
栏目: JavaScript · 发布时间: 5年前
内容简介:背景: 从cookie中读的键值为'false',当把字符串作为判断条件时,问题就来了在JS的世界里, 0、-0、null、""、false、undefined 或 NaN,这些都可以自动转化为布尔的 false,那么字符串的"false"却不等于false呢,if("false") 来判断的话,是等于true的。根据W3C的解释:
背景: 从cookie中读的键值为'false',当把字符串作为判断条件时,问题就来了
在JS的世界里, 0、-0、null、""、false、undefined 或 NaN,这些都可以自动转化为布尔的 false,那么字符串的"false"却不等于false呢,if("false") 来判断的话,是等于true的。
根据W3C的解释:
var myBoolean=new Boolean(); //下面的所有的代码行均会创建初始值为 false 的 Boolean 对象。 var myBoolean=new Boolean(); var myBoolean=new Boolean(0); var myBoolean=new Boolean(null); var myBoolean=new Boolean(""); var myBoolean=new Boolean(false);//不带单引号的是false var myBoolean=new Boolean(NaN); //下面的所有的代码行均会创初始值为 true 的 Boolean 对象: var myBoolean=new Boolean(1); var myBoolean=new Boolean(true); var myBoolean=new Boolean("true"); var myBoolean=new Boolean("false");//带单引号的字符串false最终等于true var myBoolean=new Boolean("Bill Gates"); 复制代码
因此,如果从cookie或者后台返回数据为字符串的'false'时,是不能直接作为判断条件的。
解决方案
- 三目运算符转换
let bool = result === 'false' ? false : true 复制代码
- 索引
let bool = { 'true': true, 'false': false }; bool[ v ] !== undefined ? bool[ v ] : false; 复制代码
- JSON.parese
这个应该是最方便、简洁的方法了
JSON.parse('false') // false JSON.parse('true') //true 复制代码
- 后端配合 ,不要使用字符串的'ture'后者'false',使用0,1代替
let target = '0' let bool = !!+target 复制代码
【讨论向】这是目前找到的较好的解决方案,如果有更好、更优雅的方式,欢迎贴过来
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- JavaScript进阶系列-类型转换、隐式类型转换
- Android 多国语言转换 Excel 和 Excel 转换为 string
- [SSL证书转换(一)]关于JKS 转换成 CRT 和 KEY
- c++中几种常见的类型转换。int与string的转换,float与string的转换以及string和long类型之间的相互...
- Protocol Buffer使用转换工具将proto文件转换成Java文件流程及使用
- 开源 | Alita:一套把 React Native 代码转换成微信小程序代码的转换引擎工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Grails权威指南
瑞切 / 张若飞 / 电子工业 / 2007-11 / 49.80元
《Grails权威指南》译自由Grails项目负责人Graeme Keith Rocher编写的《The Definitive Guide to Grails》,着重介绍了如何在Grails框架下使用Groovy语言进行敏捷的Web开发。本书详细讲解Grails开发的全部过程,包括项目构架、控制器与视图、与关系数据库之间的ORM映射,以及与Ajax和Java平台的无缝集成。同时该书也揭示了Grai......一起来看看 《Grails权威指南》 这本书的介绍吧!