为了账号安全,请及时绑定邮箱和手机立即绑定

这是什么意思?

这是什么意思?

qq_杀意隆_0 2017-10-09 09:50:55
这是腾讯mapSDK的部分代码。1.把query赋值为空字符串后,if(query)和if(!!query)有何区别?它那样写有何好处?2.它既然已经把query赋值为空字符串,if(!!query){    query+=';' }里的  query+=' ; '  不是应该必然不会被执行吗?为何还要写这句?
查看完整描述

3 回答

?
moRexss

TA贡献5条经验 获得超5个赞

因为 js 是弱类型 所以

if(query)

这里的 query 是 true 在 js 、php 等 弱类型语言中 会认为是 bool 类型

也就是说if(!!query) 也是 也是 true 的意思

只要query 不为空 在 if() 这个地方 写一个变量都会认为是 bool 类型

但是你加了条件的话 就不能那样谢了 if(query == "") 这样的话 写法就要变一下

他们这也写 其实 就是 公司规范问题,一个好的框架 有一个好的规范问题

查看完整回答
反对 回复 2017-10-09
?
Developer_Zuck

TA贡献112条经验 获得超42个赞

从局部或从字面上理解:

你的第一个问题是将‘!!’后面的内容强制转换成bool值,方便if判断。不加!!也是可以的

你的第二个问题:

if(!!query){

   query+=';'

}

意思是:如果query为空字符串,那么就在query的基础上追加“;”

查看完整回答
反对 回复 2017-10-09
  • qq_杀意隆_0
    qq_杀意隆_0
    它既然已经把query赋值为空字符串, if(!!query){ query+=';' } 里的 query+=' ; ' 不是应该必然不会被执行吗?为何还要写这句?
  • A空城
    A空城
    +=是在现有的基础上再+
?
Samaritan

TA贡献61条经验 获得超38个赞

连用两个感叹号可以做类型转换,因为 js 的 if 对一些特定场景也会判断为 false 比如说字符串 '0'

查看完整回答
反对 回复 2017-10-09
  • 3 回答
  • 0 关注
  • 2262 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信