JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了确定Javascript对象是“复杂”对象还是仅仅是字符串大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望能够传递一个字符串文字,
'this is a String'

或者一个javascript对象,

{one: 'this',two: 'is',three: 'a',four: 'String' }

作为函数的参数,并根据它是字符串还是对象采取不同的操作.我如何确定哪个是真的?

具体来说,我想迭代对象的属性,如果属性是字符串,则进行一些解析,但如果属性是对象,则递归嵌套.我已经想出如何使用$.each()迭代对象的属性,但是如果我只是用字符串做这个,它会将字符串作为一个字母数组而不是一个单独的东西来处理.我可以通过其他方式解决这个问题吗?

解决方法

var data = {
    foo: "I'm a String literal",bar:  {
       content: "I'm within an object"
    }        
};

jQuery的

$.each(data,function(i,element){
    if($.isPlainObject(element){
       // we got an object here
    }
});

在jQuery lib中有类似的方法,如$.isArray()或$.isFunction().

原生Javascript

for(var element in data){
   if(toString.call(element) === '[object Object]'){
      // we got an object here
   }
}

在toString中使用hack’ish方式有一个优点,即可以识别它是否真的是一个对象和一个数组.对象和数组都将使用typeof元素返回对象.

长话短说,你不能依靠typeof运算符来区分真实对象和数组.为此你需要toString.call().如果你只是需要知道它是否是任何对象,typeof就好了.

大佬总结

以上是大佬教程为你收集整理的确定Javascript对象是“复杂”对象还是仅仅是字符串全部内容,希望文章能够帮你解决确定Javascript对象是“复杂”对象还是仅仅是字符串所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。