函数中 var 加 10 后变为 NaN

2024-04-24

var post = 10;
function load_more(str) {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("add").innerHTML = document.getElementById("add").innerHTML + xmlhttp.responseText;
            }
        };
        var post = post + 10;
        xmlhttp.open("GET", "fetch_more.php?number=" + post , true);
        xmlhttp.send();
}

当我加载网站时,我希望浏览器定义要发布的值 10,并且不执行任何其他操作,直到我按下一个调用 load_more() 函数的按钮,该函数将该值增加 10 并通过 Ajax 将其传递给 PHP。

期望的行为是在网站上发布 10 个帖子,然后每次按下按钮时再加载 10 个帖子。

但 PHP 只是抛出 MySQL 错误,并且日志显示 post var 为 NaN。


The line

var post = post + 10;

是这里的罪魁祸首。 JavaScript 有一个行为叫做hoisting https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/var#var_hoisting,这本质上意味着您的变量始终在作用域的顶部声明。

因此,在您的代码中,会发生以下情况:

var post = 10;
function load_more(str) {
    var post; // `post` is now undefined
    //...other code
    post = post + 10; // undefined + 10 evaluates to NaN
}

我希望你能看到post在函数的开头重新定义,post is undefined当你使用它时post + 10, 什么导致post = post + 10评估为NaN (since undefined + 10评估为NaN).

要解决您的问题,只需删除var从前面:

post = post + 10;

or:

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

函数中 var 加 10 后变为 NaN 的相关文章

随机推荐

  • Rust 双与号,&&

    我看到一些代码如下所示 fn test lt a gt a mut a str 我知道 a 是一生 而 是引用 但是我很难理解双重引用 根据我的理解 引用是一个指针 那么 是指向另一个指针还是其他指针的指针 根据我的理解 引用是一个指针 是
  • Gitlab:无法识别对等方的证书颁发者

    我在全新安装 gitlab 时遇到此错误 该消息如下所示 fatal unable to access https gitlab ci token email protected cdn cgi l email protection som
  • 用于事件驱动通信的 SQL CLR

    我工作的地方他们正在使用长轮询检测数据库中发生的事件的技术 虽然它有效 我认为每个人都会同意轮询数据库并不是最佳选择 我宁愿尝试某种推送技术或技巧 因此 我正在考虑使用表触发器打电话给SQL CLR将事件放入队列或调用 Web 服务的对象
  • Angular 子组件 ng-invalid

    我正在创建一个自定义输入组件 该组件通过实现实现形式兼容ControlValueAccessor 该输入组件是一个或多个子输入的组合 但我无法获取ng invalid要传播给子级的 CSS 类input元素 我的自定义输入组件有一个类似的模
  • ASP MVC Less 文件给出: 调用目标已引发异常

    我有一个简单的 asp net mvc 4 站点 使用较少的文件 当我在本地电脑上运行它时 它工作正常 但是当我将其发布到服务器时 我收到以下错误 During the output text content of processed as
  • 更改 iframe 上的鼠标光标

    我想将鼠标光标从手动状态取消为默认状态 其中出现白色箭头 我有一个简单的 iframe 但我认为 iframe 内有一个链接导致光标更改为指针 手 我该如何更改该行为 这不起作用 iframe cursor default 如果您可以访问
  • R 防止饼图中重叠

    我的数据是这样的 VariantClass PASS ONTARGET Silent 50 30 Missense 47 00 Nonsense 0 74 Startloss 0 26 Stoploss 0 74 Frameshift in
  • 如何在 Python 中使用 LXML 捕获 XML 文件的所有元素名称?

    我能够使用 lxml 来完成我想做的大部分事情 尽管浏览令人困惑的示例和教程很困难 简而言之 我能够读取外部 xml 文件并通过 lxml 将其导入正确的树状格式 为了证明这一点 如果我输入 print etree tostring myX
  • Mongoose 连接两个集合并仅从连接的集合中获取特定字段

    我在加入猫鼬中的两个集合时遇到问题 我有两个集合 即 学生和考试 学生模型 fullname type String required true email type String required true 考试模式 test type
  • 我应该如何在 HTML 中表达 15/16 之类的分数?

    我知道有 1 2 1 4 和 3 4 的 HTML 实体 但是还有其他实体吗 比如 1 3 还是 1 8 有没有一种好方法来编码任意分数 how about 15 16
  • data.table 按引用赋值`:=` 的标准形式和函数形式的不同结果

    标准中的 data tabel 通过引用 赋值与函数形式之间似乎存在细微差别 标准形式将 RHS 强制为向量 而函数形式则不然 一个细节 但我认为没有记录 library data table dt lt data table a c a
  • 将 int 转换为字节数组时的 C++ 字节顺序

    鉴于我的平台是小端字节序 我假设四字节整数值 1 将表示为0x00 0x00 0x00 0x01当表示为字节数组时 这样 有人可以向我解释为什么以下断言失败 int val 1 auto bytes reinterpret cast
  • 如何将android中捕获的图像保存到php?

    我们已经在 android 和 php 上尝试过这个代码 请看下面的代码 Android Scn setOnClickListener new OnClickListener Override public void onClick Vie
  • 带有对数刻度的更好的刻度和刻度标签

    我正在尝试获得更好看的双对数图 除了一个小问题之外 我几乎得到了我想要的 我的示例偏离标准设置的原因是 x 值限制在不到十年的范围内 并且我想使用十进制 而不是科学记数法 请允许我用一个例子来说明 import matplotlib pyp
  • 页面上的多个 ShareThis 实现

    我有一个包含不同定价计划的页面 我希望每个计划列都有自己的 ShareThis 信息 以下是仅适用于电子邮件的标记 我也有 Facebook 和 Twitter span class st email span span class st
  • 如何用java读取/写入ID3v2标签?

    我希望能够从 mp3 文件中读取 ID3v2 标签 我找到了多个框架 可以让我获得基本标签 但我希望能够让这些人list https picard musicbrainz org docs mappings 我不关心与 IDv1 的向后兼容
  • 计算两次之间有多少分钟

    我的应用程序中有一个 datagridview 它保存开始和结束时间 我想计算这两个时间之间的分钟数 到目前为止我已经得到 var varFinish tsTable Rows intCellRow Finish Time TimeSpan
  • 不支持 Html 目标属性

    我刚刚在 w3Schools 上查看了 target 发现任何主要浏览器都不再支持它 简单的谷歌搜索没有揭示出这个原因 我应该避免同时使用目标吗 target属性is所有浏览器都支持 它已从 HTML4 Strict 和 XHTML 1 S
  • 将图像转换为 Base64 字符串的应用程序在有头模式和无头模式下运行时会在浏览器控制台上显示不同的结果。有谁知道为什么?

    我正在使用 Playwright 为 Node js 应用程序编写自动化测试 该应用程序有一个测试网页 其中有一个按钮 允许手动选择图像 然后该图像将被处理并转换为 Base64 字符串 该字符串将记录在浏览器的控制台上以进行验证 我正在编
  • 函数中 var 加 10 后变为 NaN

    var post 10 function load more str var xmlhttp new XMLHttpRequest xmlhttp onreadystatechange function if xmlhttp readySt