无法理解功能的行为

时间:2016-05-05 06:19:20

标签: javascript

无法理解功能的行为

function Animal() {
    console.log("showing an empty string: " + name);
    console.log("showing not defined: " + other);
}

Animal("Tommy");

2 个答案:

答案 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所以它会抛出错误。