如果要获取一个未知类型值的length属性,必须先进行类型判断,防止报错或者获取到无用值。
首先,null和undefined这两种值是无法读取属性的,会报错。所以这两种都要判断并排除。
然后,无效length属性。Object、Number、NaN、Boolean、Symbol、BigInt、Map、Set这些类型或数据结构的length属性都是undefined。当然,我没有测试全部数据结构。
还有特殊的length属性——函数的length属性表示的是形参的个数。
最后,一般情况下期望的length属性。Array、String的length属性一般是我们所需要的。