对json对象或者数组[]执行typeof操作时,得到的内容都是object,这样就无法判断是否是json对象或者是[]申明的数组。
<script> alert(typeof {})//object alert(typeof [])//object </script>
如果你的json对象未定义length成员,可以通过length属性来区分变量是json还是数组,但是如果json申明过length为数字的变量,那就无法通过length属性来判断了,可以通过{}空json对象的toString.call方法改变对象的作用域为数组[],此时输出的内容为[object Array]
<script> var o = {}; alert(o.toString.call({}))//[object Object] alert(o.toString.call([]))//[object Array],数组 </script>
原创文章,转载请注明出处:
2014-1-7Web开发网