首页 > 解决方案 > 函数似乎总是返回 true

问题描述

我有一个函数应该Boolean根据本地存储中是否存在令牌返回一个,并将其分配给一个变量。

export var isLoggedInVar = () => {
 return localStorage.getItem("token") ? true : false;
};

如果我明确设置isLoggedInVartrueor false,我的代码就可以工作,并且当本地存储(控制台日志true)中有令牌时它也可以工作。但是,当本地存储中没有值时,代码true默认呈现该选项,并且控制台日志中的值是f()而不是false. 听起来很简单,但我不明白我在这里错过了什么?

标签: javascript

解决方案


在下面的三元条件语句中,我们localStorage.getItem("token")首先检查是否存在,如果存在则返回trueelse false

在您的代码中,三元条件始终设置为 true,因此永远不会返回第二部分,即 false。

export var isLoggedInVar = () => {
  return localStorage.getItem("token") ? true : false;
};

结果:

在此处输入图像描述


推荐阅读