2021-04-09【技术】关于空数组和空对象为true的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021-04-09【技术】关于空数组和空对象为true的问题相关的知识,希望对你有一定的参考价值。
参考技术A 让我们先来看一个问题:obj明明是空的,为什么会为true呢?
因为空对象或者空数组,都是构造函数的实例化对象,ta们就算没有自定义的属性或者元素,但是其本身是有定义好的属性和方法的。
在javascript中所有数据类型严格意义上都是对象,但实际使用中我们还是有类型之分,如果要判断一个变量是数组还是对象使用typeof搞不定,因为它全都返回object。
数组有length属性,object没有,而typeof数组与对象都返回object,所以我们可以这么判断
• 判断空数组
• 使用length属性
• 判断空对象
• 使用Object.keys()将对象属性转为数组
• 然后再使用length属性判断
此外,在js中判断数组或者对象的方法
JavaScript isArray() 是 Array 类型的一个静态方法,使用它可以判断一个值是否为数组。
利用JOSN.stringify()
JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。
console.log(typeof NaN)
//number
console.log(typeof Object)
//function
console.log(typeof Object())
// object
console.log(typeof Array)
//"function"
console.log(typeof Array())
//"object"
因为Array本身是js内建的一个构造函数, 构造函数,不实例化,它就只是个函数。
然鹅,当它在调用或者初始化的时候,才会typeof成对象。
php json_encde 转换空对象和空数组 为json格式 而不是[]
参考技术A 1.加了JSON_FORCE_OBJECT参数的json_encode($foo,JSON_FORCE_OBJECT)得到的是2.(object)
以上是关于2021-04-09【技术】关于空数组和空对象为true的问题的主要内容,如果未能解决你的问题,请参考以下文章