js中的"!!"是什么意思?boolean强制类型转换

昨天在敲微信小程序的留言板demo,遇到的一个问题。本想在群里问别人小程序怎么在wxml中判断留言板内容不为空之后再提交,然后问题没解决只是把我在js中个判断换了个写法。

  • 是这样的…
    js中的
//我之前写的代码:
if(this.data.inputVal != ""){}

//现在的代码
if(!!this.data.inputVal){}

好像是少敲了好多…QAQ….

  • 我今天在segmentfault里面搜了下,这种写法是强制类型转化 。
!this.data.inputVal
//将this.data.inputVal 的值转化成boolean
!!this.data.inputVal 
//结果不言而喻,负负得正,还是自身嘛,只不过转化成了boolean类型
  • 其他类型的强制转化的黑魔法:
// 强制转换为Boolean 用 !!
var bool = !!"c";
console.log(typeof bool); // boolean

// 强制转换为Number 用 +
var num = +"1234";
console.log(typeof num); // number

// 强制转换为String 用 ""+
var str = ""+ 1234;
console.log(typeof str); // string
  • 更加强大的黑魔法<套路>
(!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]]

不妨在开发者工具里面敲下。hhhhhhhhh……..

最后,这个微信小程序留言板demo在这wechat-note

你可能感兴趣的:(javascript)