JavaScript_Truthy and Falsy赋值_codecademy
有人能给我解释一下为什么这个代码不起作用吗JavaScript_Truthy and Falsy赋值_codecademy,javascript,Javascript,有人能给我解释一下为什么这个代码不起作用吗 let defaultName; if (username) { defaultName = username; } else { defaultName = 'Stranger'; } 它在Codecademy,JS部分用作示例。 出现一个说明未定义用户名的错误 谢谢。您试图将“用户名”分配给“默认名称”,但从未声明过“用户名”。这似乎有点可笑,但在JS中,您将右边的值分配给左边的变量,因此在代码中: let defaultName; if
let defaultName;
if (username) {
defaultName = username;
} else {
defaultName = 'Stranger';
}
它在Codecademy,JS部分用作示例。
出现一个说明未定义用户名的错误
谢谢。您试图将“用户名”分配给“默认名称”,但从未声明过“用户名”。这似乎有点可笑,但在JS中,您将右边的值分配给左边的变量,因此在代码中:
let defaultName;
if (username) {
defaultName = username;
...
这部分是错误的,因为您告诉程序将“defaultName”设置为“username”,而“username”不存在
要简单地运行此代码,必须初始化“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中执行,很可能是使用三元运算符,您现在还不需要知道。因为未定义
username
。你能解释一下为什么你不这么想吗?如果你正在使用的教育材料引用了这个例子,那么这个例子大概可以说明其他的背景。(也有可能这个例子本身就是课程材料中的一个错误。这种情况经常发生。)@t3.0不,这不正确sense@T3.0那不太对。错误是未定义用户名
defaultName
是未定义的,因为它的值是undefined
值(除非您尝试访问它的一个属性或类似的东西,否则这是完全可以的),但是username
不是在编译器从未听说过的意义上定义的(即它甚至还没有被声明,因此编译器知道试图运行程序是个坏主意。)除非代码学院示例的目的是生成一个错误,否则它是完全有意义的。否则,人们会假设用户名是在提供的代码块之外定义的。谢谢你Nikolas。我只是一个新手,总有一天我会理解你写的所有内容!