Javascript 如何检查切换主题是否为对象?
我的Ajax响应可以是Javascript 如何检查切换主题是否为对象?,javascript,jquery,Javascript,Jquery,我的Ajax响应可以是json对象、bool或各种字符串值 我可以检查它是否是switch语句中的对象吗 $.post('url',{some:'data'},function(response){ switch (response){ case true: console.log('is true'); break; case false: console.log('is false'); break; case 'success
json对象
、bool
或各种字符串值
我可以检查它是否是switch语句中的对象吗
$.post('url',{some:'data'},function(response){
switch (response){
case true:
console.log('is true');
break;
case false:
console.log('is false');
break;
case 'success':
console.log('is success');
break;
case typeof this === 'object' // thought I'd try this but it didn't work.
console.log('is object');
break;
}
});
开关
在参数和大小写
表达式之间执行相等比较。因此,case-typeof this=='object'
计算typeof this=='object'
的值,该值将是true
或false
,具体取决于这是什么(它将是回调中的窗口
),并将其与响应
进行比较。它不会测试响应的类型。如果要对响应的类型执行切换,请将其用作参数
尝试:
更一般地说,当您想要对同一个值进行一系列相等性测试时,应该使用开关。不能在同一个开关中混合使用相等测试和类型测试;您需要对其中一个使用switch
,对另一个使用if
。switch
在参数和大小写表达式之间执行相等比较。因此,case-typeof this=='object'
计算typeof this=='object'
的值,该值将是true
或false
,具体取决于这是什么(它将是回调中的窗口
),并将其与响应
进行比较。它不会测试响应的类型。如果要对响应的类型执行切换,请将其用作参数
尝试:
更一般地说,当您想要对同一个值进行一系列相等性测试时,应该使用开关。不能在同一个开关中混合使用相等测试和类型测试;您需要对其中一个使用开关
,对另一个使用如果
。有一个默认情况:
default :
if(typeof response === 'object'){ // thought I'd try this but it didn't work.
console.log('is object');
}
break;
有一个默认情况:
default :
if(typeof response === 'object'){ // thought I'd try this but it didn't work.
console.log('is object');
}
break;
当你说你的AJAX响应可以是一个bool
,那在网络上是什么样子的?你确定它还不是JSON吗?在这种情况下,由于jQuery自动反序列化JSON,您的问题实际上是“如何找到变量var
”的类型,这一问题以前已经被问过很多次了。@LightnessRacesinOrbit是的,在这方面bool实际上是JSON,但开关会检测到它们。我需要的是一个检测{foo:'bar',this:'that'}
您的API听起来不可靠的案例。它应该比这更加一致。有一个不变的模式和不断变化的数据。当你说你的AJAX响应可以是一个bool
,那在网络上是什么样子的?你确定它还不是JSON吗?在这种情况下,由于jQuery自动反序列化JSON,您的问题实际上是“如何找到变量var
”的类型,这一问题以前已经被问过很多次了。@LightnessRacesinOrbit是的,在这方面bool实际上是JSON,但开关会检测到它们。我需要的是一个检测{foo:'bar',this:'that'}
您的API听起来不可靠的案例。它应该比这更加一致。有一个不变的模式和不断变化的数据。