javascript - 如果从 JSON.search() 返回 JavaScript 变量,为什么它是 "undefined"?

标签 javascript jquery json

我有以下代码

function f () {
  var jsonvar = get (...);
  console.log (jsonvar);
  $.ajax({
      type: "POST",
      url: transactUrl,
      dataType: "xml",
      success: function (result) {
        console.log (jsonvar);
      }
  });
}

function get (param) {
    return JSON.search (...).toString ();
}

我会得到结果:

"someValue"
undefined

但是为什么 jsonvar$.ajax() 函数中“被遗忘”了?未使用 JSON 定义的变量将具有相同的值。它们之间有什么区别? Javascript 的 typeof 为它们返回 String

最佳答案

我认为您的代码中某处存在一些错误(可能)导致“无提示错误”。看看这个 fiddle ; http://jsfiddle.net/9k1f6dpb/

function f () {
    var jsonvar = get();
    console.log (jsonvar);

    $.ajax({
        type: "GET",
        url: 'http://updates.html5rocks.com',
        success: function (result) {
            console.log(jsonvar);
        }
    });
}

function get (param) {
    return JSON.search({'a': 1}, '//a').toString();
}

f();

这表明设置正在工作,并且变量在此过程中没有被“遗忘”。尝试添加“use strict”...它可能有助于在调试时抛出有用的错误。

function f () {
    'use strict';
    ...

关于javascript - 如果从 JSON.search() 返回 JavaScript 变量,为什么它是 "undefined"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28837419/

相关文章:

javascript - 使用angular js更改文本外观

javascript - jQuery parseJSON 失败

javascript - 如果用户在 Angular 中按下 Shift 按钮,HostListener 将无法正常工作

javascript - 不是 JavaScript 中的函数错误

javascript - 全背景图片幻灯片jquery,想让幻灯片的最后一张图片可点击

javascript - 如何按名称设置复选框默认值?

android - 在 Android 中将 POJO 转换为 JSON Retrofit

json - 是否有关于 SERDEPROPERTIES 的 Hive JSON SERDE 文档?

c# - 更改单击按钮上的切换选项卡

javascript - AJAX 返回和提交 HTML