如何快速、高效的将“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 代码转换成微信小程序代码的转换引擎工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
scikit learn机器学习
黄永昌 / 机械工业出版社 / 2018-3-1 / CNY 59.00
本书通过通俗易懂的语言、丰富的图示和生动的实例,拨开了笼罩在机器学习上方复杂的数学“乌云”,让读者以较低的代价和门槛轻松入门机器学习。本书共分为11章,主要介绍了在Python环境下学习scikit-learn机器学习框架的相关知识。本书涵盖的主要内容有机器学习概述、Python机器学习软件包、机器学习理论基础、k-近邻算法、线性回归算法、逻辑回归算法、决策树、支持向量机、朴素贝叶斯算法、PCA ......一起来看看 《scikit learn机器学习》 这本书的介绍吧!