为什么结果是NaN?

2024-03-02

var a = 10;
sayHi();
function sayHi()
{
var a = a + 10;
alert(a);
return a;
}
alert(a);
alert(sayHi()+10);

为什么上面的结果不是20和30?我觉得第一个是20,然后是30。


function sayHi()
{
   var a = a + 10;
   alert(a);
   return a;
}

function sayHi()
{
    var a;
    // a in this function will be the loacal variable a, which is undefined at first
    // a is undefined, undefined + 10 is NaN
    a = a + 10;
    alert(a);
    return a;
}

检查这篇文章:JavaScript 作用域和提升 http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting

如果你想使用全局变量a,你不应该使用var a函数内部。

但更好的解决方案是使用参数。

function sayHi(a)
{
   a = a + 10;
   alert(a);
   return a;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么结果是NaN? 的相关文章

随机推荐

  • 如何在 django 中使 @cached_property 无效

    我目前正在使用 cached property在模型类上 我想在保存时删除它 以便可以在下次调用时重新填充它 我该怎么做呢 例子 class Amodel model fields cached property def db connec
  • Linux调度程序需要上下文切换吗?

    我有一个关于 linux 调度程序和其他一些类似的内核系统调用的一般问题 Linux调度程序是否被视为一个 进程 并且对调度程序的每次调用都需要像另一个进程一样进行上下文切换 假设我们有一个时钟滴答声 它会中断当前正在运行的用户模式进程 现
  • Excel 检测并跟踪任何工作表中的(值)变化

    我已经设法编写了一个代码来检测任何工作表中特定单元格的值变化 但我一直在努力构建一些检测和跟踪范围 值 变化的代码 例如 如果用户决定复制并粘贴某些范围的数据 假设超过 1 个单元格 宏将不会捕获它 用户选择一个范围 然后在仍选择范围的情况
  • 反转动画

    我有一个 ImageView 当它添加到布局中时它会变得动画 当它被删除时 我想反转相同的动画 有没有办法在android中反转动画而不需要重新编码和反转参数 不 遗憾的是你不能用动画对象来做到这一点 但您可以使用插值器来模拟它 该插值器将
  • IPython Notebook - 在 Javascript 中检测内核是否繁忙/空闲

    我目前正在尝试使用 IPython 笔记本获得交互式绘图 我遇到的问题之一是 当通过 javascript 中的 IPython notebook kernel execute 方法执行 Python 代码时 我无法知道该代码何时完成执行
  • Jenkins - 同时运行单个构建的实例

    我希望能够同时运行同一个 Jenkins 作业的多个构建 Example 构建 jenkins job 1 使用参数 A 调用 ant 脚本 构建 jenkins job 1 使用参数 B 调用 ant 脚本 根据需要重复 作业的每个实例同
  • 是否可以将 Series 附加到 DataFrame 的行而不先创建列表?

    我有一些数据正在尝试组织成DataFrame in Pandas 我试图让每一行Series并将其附加到DataFrame 我找到了一种方法 通过附加Series到一个空的list然后转换list of Series to a DataFr
  • 如何在 ggtern 中显示数据的真实值 (%)?

    我希望得到与下例所示大致相同的结果 我在这两个函数之间犹豫是否要得到这个结果 geom crosshair tern and scale X continuous 汉密尔顿 NE 和费里 M 2018 ggtern 使用 ggplot2 的
  • 在 Node.js 的回调周围放置返回值

    一点背景知识 我使用node js 发现通过返回可以避免许多错误all异步代码中的回调 例如 function useMyAsyncFunc stuff c callback myAsyncFunc stuff a stuff b c fu
  • 裸露和非裸露 Git 存储库的区别[重复]

    这个问题在这里已经有答案了 在 git 中 我只是想知道裸存储库和非裸存储库之间有什么区别 我知道裸存储库通常只是推送到其中并且不会在其中进行更改 除此之外 它与非裸存储库有何不同 裸存储库只有 git 文件夹 没有签出的源代码树 裸存储库
  • 在 CakePHP 中保存空间数据

    我在使用 saveAll 在 CakePHP 中保存空间数据时遇到问题 我真的不想手动编写查询 在 CakePHP 中处理空间数据 https stackoverflow com questions 4598834 handling spa
  • timeout 和 browserTimeout 的区别

    我刚刚开始使用 Selenium Grid 我当前面临的问题是测试崩溃时 浏览器永远保持打开状态 直到我到达并亲自关闭它 以便可以开始下一组测试 我注意到 NODE 配置有两种超时配置 一种用于 timeout另一个用于 browserTi
  • 有没有办法在不加载rubygems的情况下调用ruby1.9?

    所以 ruby 1 9 真的很好 因为它会自动需要 ruby gems 因此当你调用require somegem 不需要首先需要 ruby gems 它就可以工作 这通常很棒 但我有大量使用 ruby 的 shell 脚本 它们通常不依赖
  • 对 static constexpr char[] 的未定义引用

    我想要一个static const char我班上的数组 GCC 抱怨并告诉我我应该使用constexpr 尽管现在它告诉我这是一个未定义的引用 如果我将数组设置为非成员 那么它就会编译 到底是怎么回事 hpp struct foo voi
  • 查找java类中所有对方法的调用

    我有一个包含很多课程的庞大项目 我有一个非常具体的课程 让我们命名它SuperFoo 我需要找到对该方法的所有调用equals 带类型参数Superfoo 希望它是清楚的 所以 再一次 在数千个java文件 或字节码 中我想找到对该方法的所
  • 如何防止 del *.txt 出现“找不到”错误消息?

    在 Windows 批处理文件中 此行 del txt 将给出错误 警告消息 Could Not Find C txt 如果没有与模式 txt 匹配的文件 有没有办法阻止该消息 if exist txt del txt
  • PHP 人类日期范围/持续时间格式

    PHP 制作得非常好 我想知道是否有一个函数可以满足我的需要 对于持续超过一天的事件 人类的格式化方式很复杂 例子 事件一 从 2015 04 20 到 2015 04 22 可以针对人类进行格式化 如下所示 2015 年 4 月 20 2
  • 一次阻塞收集进程 n 个项目 - 完成 1 个项目后立即继续

    我有以下场景 我将数据库中的 50 个作业放入阻塞集合中 每项工作都是长期运行的 可能是 所以我想在单独的线程中运行它们 我知道 最好将它们作为 Task WhenAll 运行并让 TPL 弄清楚 但我想控制同时运行的数量 假设我想同时运行
  • Spring Boot不加载静态资源,它取决于RequestMapping深度

    我在 Spring Boot 应用程序上加载静态文件夹下的文件时遇到问题 问题是 RequestMapping 深度超过 2 之类的 RequestMapping spring xyz The RequestMapping spring 单
  • 为什么结果是NaN?

    var a 10 sayHi function sayHi var a a 10 alert a return a alert a alert sayHi 10 为什么上面的结果不是20和30 我觉得第一个是20 然后是30 functio