当前位置:首页 > 日记 > 正文

JS字符串false转boolean的方法 | 推荐

JS字符串false转boolean的方法 | 推荐

大家都知道在JS的世界里, 0、-0、null、""、false、undefined 或 NaN,这些都可以自动转化为布尔的 false,那么字符串的"false"是不是false呢,答案是否定的,if("false") 来判断的话,是等于true的

所以今天遇到个SB问题,就是后台velocity往前台传参,大家一般都是这么写。

0.背景

var hasAuth = $!auth ; // 这个auth就是利用velocity传到前台的

这么写就有一个风险,那就是,如果后台忘记往前台传这个参数,就造成了如下的

var hasAuth = ; // 语法错误,因为;之前是个空,这是由于velocity木有传参,前台是自然而然的变成了空白,空白!!

1、解决1

那么如何解决这种因为前后端不分离,velocity忘记传到前台而产生的这个问题呢,当当当当,我想到了一个办法就是利用单引号将变量括住,这样后台不传参,我也不怕不怕啦,代码变成了这样

var hasAuth = '$!auth' ; // 这样就好啦,即使后台不传参到前台,我特么也不怕报语法错误了。

2、解决2

然而事情并没有到此结束,因为我发现如果后台没有忘记往前台传参,后台获得的权限绝逼不是true就是false,那么问题来了,代码经过渲染变成了下面这个样纸。

var hasAuth = 'true';或者var hasAuth = 'false';

那么下面再做判断的时候呢

1.var hasAuth = 'true';if(hasAuth){ //此时的hasAuth是true }2.var hasAuth = 'false';if(hasAuth){ //此时的hasAuth还是true }

日了狗了,这该如何是好!!!

3、解决3

我特么灵机一动,那么我用Boolean的构造方法去做处理岂不是就ok了?我特么太聪明了,于是这么写

var hasAuth = Boolean('$!auth');

还是和刚才一样

1.当后台传到前台的auth是true时,Boolean('$!auth') === Boolean('true') === true;var hasAuth = 'true';if(hasAuth){ //此时的hasAuth是true }2.当后台传到前台的auth是false时,Boolean('$!auth') === Boolean('false') === true;var hasAuth = 'false';if(hasAuth){ //此时的hasAuth还是true }

日了狗了,为咩啊

4、解决4

我查阅了一下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);//不带单引号的是falsevar 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最终等于truevar myBoolean=new Boolean("Bill Gates");

靠了,这条路也想不通,可爱的一休哥,赶紧想想注意啊!

5、解决5 最终解决方案

灵机一动,哇塞,那么我用字符串去对比字符串总可以了吧?

于是最终的检测方法如下

var hasAuth = '$!auth' === 'true' ;1.$!auth 为 true 时var hasAuth = 'true' === 'true' ;console.log(hasAuth);//true2.$!auth 为 false 时var hasAuth = 'false' === 'true' ;console.log(hasAuth);//false

当然也可以如下玩

String.prototype.bool = function() {
    return (/^true$/i).test(this);
};
console.log("true".bool());

以上这篇JS字符串false转boolean的方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

相关文章

怎么在excel中使用矩阵函数在excel

怎么在excel中使用矩阵函数在excel

函数,方法,教程,矩阵,电脑软件,  矩阵函数:定义域和值域都属于方阵的函数称为矩阵函数,它有多种定义方法。当用方阵幂级数的和函数来定义矩阵函数时,方阵函数f(a)=,其中自变量a和函数值f(a)都是n阶方阵,Ck是常系数。下面小编教你在excel中使用…

详谈Angular路由与Nodejs路由的区

详谈Angular路由与Nodejs路由的区

路由,区别,电脑软件,Angular,Nodejs,1、觉得angualr.js的路由是针对于单页面的路由,每次路由发生变化,只是页面的状态发生变化,页面本身没有发生跳转2、express的路由是针对多页面的,也就是说他做的页面,路由的切换是伴随着页面的切换3、所以建…

wps打开表格出错怎么处理

wps打开表格出错怎么处理

处理方法,方法,表格,怎么处理,电脑软件,  我们有时在打开wps表格的时候,会弹出打开错误的提示窗口,如果出现这样的问题,那么,我们应该如何解决呢?下面就让小编告诉你解决wps表格打开出错的方法,希望小编整理的学习资料对大家有用。解决wps表格…

powerpoint预设动画在哪个栏目

powerpoint预设动画在哪个栏目

方法,设置,动画,切换动画,栏目,  在制作幻灯片的时候,要怎么去设置页面切换动画呢?其实方法很简单,但是新手不会,怎么办?有简单易懂的方法吗?下面给大家分享ppt怎么设置页面切换动画的方法啦,希望小编整理的资料对大家有帮助。ppt设置页面切…

怎么用Word2017统计字数word2017怎

怎么用Word2017统计字数word2017怎

统计,步骤,字数,电脑软件,strong,  使用Word2017自己打了一篇文档以后,自己想要查看一下自己打了多少文字,怎么快速的查看文字个数呢,使用过Word低版本的朋友有些朋友知道怎么查看字数,但是版本升级以后,查看的方法有些区别,但是还是不影响到小…

excel表格标题锁定的方法步骤图

excel表格标题锁定的方法步骤图

锁定,方法,步骤,表格,标题,  在Excel中,录入完数据就会进行统计数据,在核对数据时都需要对着标题来进行查看,如果数据多了,往下拉就看不见了,下面是小编带来的关于excel表格标题锁定的方法,欢迎阅读!excel表格标题锁定的方法标题锁定步骤1:打开…

如何设置word2013自动生成目录

如何设置word2013自动生成目录

自动生成,如何设置,目录,电脑软件,  word2013中的目录用起来比word2010的更顺手,也更舒服。word2013插入目录用起来也不难,却能让整个文档阅读起来更方便,那么下面就由小编给大家分享下让word2013自动生成目录的技巧,希望能帮助到您。自动生…

JavaScript原生节点操作小结

JavaScript原生节点操作小结

节点操作,原生,电脑软件,JavaScript,前言:原生是Javascript的基础,还是需要多多重视,时间长都忘记了,现在整理一下。获取子节点children 不是标准的dom属性,但是几乎被所有浏览器支持。不包含文本节点.注意:在IE中,children包含注释节点。childNod…

excel表格间隔求和的方法excel表格

excel表格间隔求和的方法excel表格

方法,间隔,表格,电脑软件,excel,  Excel中的表格具体该如何间隔求和呢?下面是由小编分享的excel表格间隔求和的方法,以供大家阅读和学习。excel表格间隔求和的方法表格间隔求和步骤1:我们看到图中的颜色标记,我们是隔行求和,每隔一行求和一次…

jQuery动画_动力节点节点Java学院

jQuery动画_动力节点节点Java学院

节点,动画,学院,动力,电脑软件,用JavaScript实现动画,原理非常简单:我们只需要以固定的时间间隔(例如,0.1秒),每次把DOM元素的CSS样式修改一点(例如,高宽各增加10%),看起来就像动画了。但是要用JavaScript手动实现动画效果,需要编写非常复杂的代码。如…

前端框架学习总结之Angular、React

前端框架学习总结之Angular、React

学习,前端框架,详解,电脑软件,React,近几年前端的技术发展很快,细分下来,主要可以分成四个方面: 1.开发语言技术,主要是ES6&7,coffeescript,typescript等; 2.开发框架,如Angular,React,Vue.js,Angular2等; 3.开发工具的丰富和前端工…

ppt2007设置定时循环播放

ppt2007设置定时循环播放

设置,循环播放,方法,电脑软件,  平时使用课件时需要PPT以幻灯片的方式放映图片,这种放映方式在PPT上能够自由设置比图片软件好得多。那么如何ppt2007设置定时循环播放呢?接下来小编带大家了解一下吧。ppt2007设置定时循环播放的方法先打开…