亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這是什么意思?

這是什么意思?

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 關注
  • 2326 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號