Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript_Truthy and Falsy赋值_codecademy_Javascript - Fatal编程技术网

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。我只是一个新手,总有一天我会理解你写的所有内容!