无法理解功能的行为
function Animal() {
console.log("showing an empty string: " + name);
console.log("showing not defined: " + other);
}
Animal("Tommy");
答案 0 :(得分:3)
由于您的函数不执行任何参数,因此执行
console.log("showing an empty string: " + name);
将导致
showing an empty string:
执行时
console.log("showing not defined: " + other);
将导致错误“ReferenceError:其他未定义”。
这种行为是因为您正在使用全局变量,并且每个窗口都定义了名称。默认情况下,它是“”(空字符串)。
因此,如果您打开控制台并撰写window.name
,您将获得""
如果你写window.other
,你会得到 undefined
答案 1 :(得分:2)
因此,每个window
都有一个name
属性,主要由window.name
访问。
因此,当您调用该函数时,第一行是打印
showing an empty string:
因为通常name是一个空变量,而在第二行中没有定义变量other
所以它会抛出错误。