我正在使用ajax来获取返回的json。有时它会返回一个空字符串。我想知道如何做一个' ===' json空字符串的等值类型比较。对于以下示例,我可以在' ==='的右侧放置什么?得到一个真实的'弹出窗口(注意:这个例子会返回' false')?提前谢谢!
<script type='text/javascript'>
$(function(){
$.post('somefile.php', function(data){alert([]===[]?'true':'false');}, 'json');
})
</script>
答案 0 :(得分:2)
它返回false,因为数组是引用类型,而不是基本类型;这意味着如果你说:
var a = []; var b = [];
a
和b
存储对其值的引用,而不是值本身。因此,对a
的值的引用和对b
的值的引用并不相同。
比较数组,据我所知,你必须遍历所有元素并逐一比较它们。
另一方面,对于基本类型,您可以比较它们的值。所以也许你可以返回一个字符串并进行比较。
答案 1 :(得分:0)
如果回复data
为空字符串,请尝试alert(data==='[]'?'true':'false')
如果你有一个数组作为回应只是检查它看起来很长。
alert(data.length?'true':'false')
因此,如果长度为0,则为Javascript的假值,并且您将为'true',如果长度为1或更大,则您将获得'false'。