Javascript 变量范围 - 变量未定义

标签 javascript

我试图理解下面的java脚本代码是如何工作的。我有一个名为 color 的全局变量,它存储“蓝色”;我调用 printColor() 来简单地打印颜色。 我不明白的是,当我在函数中定义一个名为 color 的新局部变量时,为什么颜色未定义。如果取消下面局部颜色变量声明的注释, 颜色未定义。

var color = 'blue';

printColor();

function printColor(){
  document.write(color);
  //var color = "green";
}

最佳答案

您正在 printColor() 函数中重新声明变量颜色,因为该声明实际上被提升到顶部,它会在函数开始时覆盖它,因此您会看到 undefined

var color = 'blue';

function printColor(){
  document.write(color);
  //var color = "green";
}
printColor();

但如果你这样做:

function printColor(){
    document.write(color); //undefined
    var color = "green";
    console.log(color); //shows green
}

关于Javascript 变量范围 - 变量未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24444076/

相关文章:

javascript - Aurelia.js 如何在表中添加新行?不使用jquery

c# - 如何通过 MVC 操作方法显示/隐藏 HTML 按钮

javascript - 寻找正则表达式以匹配 ng-pattern 中的特定十进制格式

javascript - 使用 javascript 在 cookie 中创建数组

javascript - 如何将以下 pcre 正则表达式 (?<=group\()(.*)(?=\)) 转换为 javascript

javascript - Gmail API messages.get 未返回预期数据

javascript - 来自 Controller .NET MVC 的模态弹出窗口

基于除法的 Javascript 余数不正确

javascript - React - 从字节字符串中的 API 响应正文下载 Zip 文件?

javascript - Express:从 Jade 文件中找不到 $