变量返回“null”而不是 null

我有一个非常基本的 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

  }


浮云间
浏览 155回答 3
3回答

慕田峪4524236

像这样解析它 JSON.parse(encryptedCredentails) 它返回 null 没有 ''var encryptedCredentails  = 'null'console.log(JSON.parse(encryptedCredentails )) //null console.log(encryptedCredentails ) //"null"

慕的地8271018

您是在空格“”的基础上拆分的,因此它不能为“非空”,因为它也会拆分它

桃花长相依

此条件正在检查字符串值“null”,而不是原始类型null。    if (encryptedCredentails == 'null') {.           console.log('null') // prints null     }如果您正在尝试进行空检查,encryptedCredentails那么您的条件应该是以下可能的选项之一:如果你只是想检查空值,而不是其他空值,那么做一个“严格”的平等检查:if (encryptedCredentails === null)如果你想把undefined 0etc etc 当作 `null,那么使用:if (encryptedCredentails == null)或者if (!encryptedCredentails)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript