我有以下代码
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/