Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查切换主题是否为对象?_Javascript_Jquery - Fatal编程技术网

Javascript 如何检查切换主题是否为对象?

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

我的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':
     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听起来不可靠的案例。它应该比这更加一致。有一个不变的模式和不断变化的数据。