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的问题的主要内容,如果未能解决你的问题,请参考以下文章

关于PHP如何定义一个空对象

如何从空嵌套对象和空数组中清除 json

Javascript创建空对象和空数组的几个方法和差别

EXCEL函数去除数组中的0值和空值

php语言判断零和空怎么判断啊?

DataFrame 列(数组类型)包含 Null 值和空数组(len =0)。如何将 Null 转换为空数组?