浮云間
2023-06-09 15:51:38
我有一個非常基本的 javascript 函數,我將字符串分成兩部分。問題是第二部分是“空”而不是空。所以如果功能不能正常工作請找到下面的代碼和 console.logs。為什么會有這種奇怪的行為。先感謝您 extractCredentials(request: Request): any { const authHeaderValue = request.headers.authorization; const parts = authHeaderValue.split(' '); const encryptedCredentails = parts[1]; console.log(typeof encryptedCredentails) // prints string console.log(encryptedCredentails) // null console.log(encryptedCredentails.length) // prints 4 if (encryptedCredentails == 'null') { console.log('null') // prints null } else { console.log('not null') // not executed } if (encryptedCredentails) { console.log('true') // true } else { console.log('false') // not executed } return encryptedCredentails }
3 回答

慕田峪4524236
TA貢獻1875條經驗 獲得超5個贊
像這樣解析它 JSON.parse(encryptedCredentails) 它返回 null 沒有 ''
var encryptedCredentails = 'null'
console.log(JSON.parse(encryptedCredentails )) //null
console.log(encryptedCredentails ) //"null"

桃花長相依
TA貢獻1860條經驗 獲得超8個贊
此條件正在檢查字符串值“null”,而不是原始類型null
。
????if?(encryptedCredentails?==?'null')?{. ??????????console.log('null')?//?prints?null ????}
如果您正在嘗試進行空檢查,encryptedCredentails
那么您的條件應該是以下可能的選項之一:
如果你只是想檢查空值,而不是其他空值,那么做一個“嚴格”的平等檢查:
if (encryptedCredentails === null)
如果你想把undefined
?0
etc etc 當作 `null,那么使用:
if (encryptedCredentails == null)
或者
if (!encryptedCredentails)
添加回答
舉報
0/150
提交
取消