猿问

JavaScript_Truthy 和 Falsy Assignment_codecademy

有人可以向我解释为什么这段代码不起作用吗?


let defaultName;

if (username) {

  defaultName = username;

} else {

  defaultName = 'Stranger';

}

它在 Codecademy,JS 部分用作示例。出现说明用户名未定义的错误。


谢谢你。


波斯汪
浏览 82回答 1
1回答

慕尼黑8549860

您正在尝试将“用户名”分配给“默认名称”,但您从未声明过“用户名”。这可能看起来有点有趣,但在 JS 中,您将右侧的值分配给左侧的变量,因此在您的代码中:let defaultName;if (username) {  defaultName = username;...这部分有问题,因为您告诉程序将“defaultName”设置为“username”,而该用户名不存在。要简单地运行此代码,您必须像这样初始化“用户名”变量:let username = 'John';let defaultName;if (username) {  defaultName = username;} else {  defaultName = 'Stranger';}这既乏味又毫无意义,因为在真正的应用程序中,您会从表单、数据库或授权中获取用户名,这可能是真实的:...const user = this.props.auth.user;let defaultName;if (user) {   defaultName = user.username;} else {   defaultName = 'Stranger';}...这将在React中执行,并且很可能使用三元运算符,您现在不需要知道。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答