如何快速、高效的将“false”转换为false
栏目: JavaScript · 发布时间: 6年前
内容简介:背景: 从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 代码转换成微信小程序代码的转换引擎工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入React技术栈
陈屹 / 人民邮电出版社 / 2016-11-1 / CNY 79.00
全面讲述React技术栈的第一本原创图书,pure render专栏主创倾力打造 覆盖React、Flux、Redux及可视化,帮助开发者在实践中深入理解技术和源码 前端组件化主流解决方案,一本书玩转React“全家桶” 本书讲解了非常多的内容,不仅介绍了面向普通用户的API、应用架构和周边工具,还深入介绍了底层实现。此外,本书非常重视实战,每一节都有实际的例子,细节丰富。我从这......一起来看看 《深入React技术栈》 这本书的介绍吧!